ورود

View Full Version : سوال: خطای SQL Command در Parameters.AddWithValue. لطفا راهنمایی کنید.



Parham.D
سه شنبه 01 دی 1388, 18:46 عصر
سلام.
من کد زیر را آزمایش میکنم برای Update کردن برای GridView، ولی پیغام خطا میده. لطفا بررسی و راهنمایی کنید. ممنون.

کد:





int RowInEdit = e.RowIndex;
string[] EditedData = new string[4];

for (int i = 0; i < 3; i++)
{
EditedData[i] = ((TextBox)grvUsersEdit.Rows[RowInEdit].Cells[i + 2].Controls[0]).Text;
}

EditedData[3] = grvUsersEdit.Rows[RowInEdit].Cells[1].Text;

string CommandString = "UPDATE Users" +
" SET User_Name = '@User_Name', User_Password = '@User_Password'," +
" User_Type = '@User_Type', User_Display = '@User_Display'" +
" WHERE (User_Name LIKE '" + EditedData[3] + "')";

SqlCommand UpdateCommand = new SqlCommand(CommandString, Connection);
UpdateCommand.CommandType = CommandType.Text;
UpdateCommand.Parameters.AddWithValue("@User_Password", EditedData[0]);
UpdateCommand.Parameters.AddWithValue("@User_Type", EditedData[1]);
UpdateCommand.Parameters.AddWithValue("@User_Display", EditedData[2]);

try
{
Connection.Open();
UpdateCommand.ExecuteNonQuery();
Connection.Close();

grvUsersEdit.EditIndex = -1;
grvUsersEditBinding();
}
catch (SqlException erro)
{
lbl_grvUsersEditMessage.Text = erro.Message;
}




پیغام خطا:

String or binary data would be truncated. The statement has been terminated.

hp1361
سه شنبه 01 دی 1388, 22:06 عصر
سلام.

string CommandString = "UPDATE Users" +
" SET User_Name = '@User_Name', User_Password = '@User_Password'," +
" User_Type = '@User_Type', User_Display = '@User_Display'" +
" WHERE (User_Name LIKE '" + EditedData[3] + "')";

[/LEFT]

سلام دوست عزیز

شما در دستورات بالا چرا قبل و بعد پارامتر ها از ' استفاده کرده اید؟ در ابتدا و انتهای CommandString از " استفاده نموده اید که برای مشخص نمودن استرینگ شما کافیست . دیگه در میان اون نیازی نیست از ' استفاده کنید . خودش پارامتر بودن رو با علامت @ تشخیص خواهد داد .
در ضمن شما که دارید از پارامتر استفاده می کنید پس برای تمام داده هاتون این کار رو کنید . منظورم EditedData[3] هستش .

موفق باشی