OriginalGriff
Все будет зависеть от того, как вы передадите данные в SQL. Если вы передаете его путем конкатенации строк, то, по всей вероятности, это ваша проблема - и наименьшая из ваших проблем, поскольку она оставляет вас широко открытыми для SQL-инъекций, которые могут повредить или уничтожить вашу базу данных.
Попробуйте что-нибудь вроде этого:
using (SqlConnection con = new SqlConnection(strConnect))
{
con.Open();
using (SqlCommand cmd = new SqlCommand("INSERT INTO myTable (myColumn1, myColumn2) VALUES (@C1, @C2)", con))
{
cmd.Parameters.AddWithValue("@C1", myValueForColumn1);
cmd.Parameters.AddWithValue("@C2", myValueForColumn2);
cmd.ExecuteNonQuery();
}
}
И посмотрим, решит ли это проблему. А затем проверьте остальную часть вашего кода на конкатенацию строк!
Я сохраняю данные с помощью этого кода :
SqlCommand cmd = new SqlCommand("insert into tbl_media(id,title,description) values(@id,@title,@description)", con);
SqlParameter[] prms = new SqlParameter[3];
prms[0] = new SqlParameter("@id", SqlDbType.VarChar, 50);
prms[0].Value = Session["id"].ToString();
prms[1] = new SqlParameter("@title", SqlDbType.VarChar, 50);
prms[1].Value = txtTitle.Text;
prms[2] = new SqlParameter("@description", SqlDbType.VarChar, 100);
prms[2].Value = txtDescription.Text;
cmd.Parameters.AddRange(prms);
В этом случае вы специально указываете системе усечь ваш заголовок и описание до 50 и 100 символов и передать данные Юникода в поле, не являющееся юникодом. Кроме того, вы передаете непроверенную строку в целочисленный столбец, что не очень хорошая идея.
Вместо этого сделайте свой заголовок и описание столбцов NVARCHAR, а затем попробуйте сделать это:
using (SqlCommand cmd = new SqlCommand("INSERT INTO tbl_media (id, title, description) VALUES (@id, @title, @description)", con))
{
cmd.Parameters.AddWithValue("@id", (int) Session["id"]);
cmd.Parameters.AddWithValue("@title", txtTitle.Text);
cmd.Parameters.AddWithValue("@description", txtDescription.Text);
...
}
Таким образом, вы ничего не усекаете.
Объекты SqlCommand и SqlConnection являются дефицитными ресурсами и всегда должны быть утилизированы, когда вы закончите с ними. Если вы этого не сделаете, вы можете получить некоторые странные ошибки, особенно в многопользовательской среде, такой как интернет.
Member 11873864
Я сохраняю данные с помощью этого кода :
Команда sqlcommand cmd и = новая команда sqlcommand("вставить в tbl_media(ID,название,описание) значения(@ИД@заголовок, описание)", кон);
SqlParameter[] prms = новый SqlParameter[3];
prms[0] = новый SqlParameter ("@id", SqlDbType. VarChar, 50);
prms[0]. Value = Session ["id"].Метод toString();
prms[1] = новый SqlParameter ("@title", SqlDbType. VarChar, 50);
prms[1]. Value = txtTitle.Текст;
prms[2] = новый SqlParameter ("@description", SqlDbType. VarChar, 100);
prms[2]. Value = txtDescription.Текст;
УМК.Параметры.AddRange (prms);
Member 11873864
В моем веб-приложении теперь я хочу отображать носитель (изображение,заголовок, описание), но не в виде сетки.Не могли бы вы предложить мне другой способ?У меня есть одна ссылка также для демо-версии, где они отображают изображение, название и описание с помощью кнопки Read More
http://www.spacefoundation.org/media