Fixing C# and GridView error - String or binary data would be truncated. The statement has been terminated
I was creating a simple tool to work with database table. When I coded a part of updating table records I got some errors. One of them was:
Fixing C# and GridView error - String or binary data would be truncated. The statement has been terminated
The code of updating is rather simple in the void GridView1_RowUpdating:
GridViewRow row = GridView1.Rows[e.RowIndex];
int id = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Values[0]);
string name = (row.FindControl("lblName") as TextBox).Text;
string country = (row.FindControl("lblCountry") as TextBox).Text;
string sql = "UPDATE tbl_UserEmp SET Name=@Name, Country=@Country WHERE id=@id";
using (SqlConnection con = new SqlConnection(connstr))
{
using (SqlCommand cmd = new SqlCommand(sql))
{
cmd.Parameters.Add("@Name", SqlDbType.VarChar, 50).Value = name;
cmd.Parameters.Add("@Country", SqlDbType.VarChar, 50).Value = country;
cmd.Parameters.Add("@id", SqlDbType.Int).Value = id;
try
{
cmd.Connection = con;
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
catch (Exception ex)
{
errLabel.Text = ex.Message.ToString() + "<br />" + sql;
}
}
}
GridView1.EditIndex = -1;
But when I pressed “Update” button, I got the error on screen:
String or binary data would be truncated. The statement has been terminated.
I spent a lot of time, but solution was easier. I used to check the maximum allowed length of my columns. So, when I created table, I have forgotten to set varchar lengths for Name and Country fields. And their lengths where "1", that’s why I couldn’t update my records. Of course, if I haven’t entered only 1 symbol.
Here’s the code for creating table:
CREATE TABLE [dbo].[tmp_ms_xx_tbl_UserEmp] (
[id] INT IDENTITY (1, 1) NOT NULL,
[Name] VARCHAR (50) NULL,
[Country] VARCHAR (50) NULL
);
Net 10.0 is not available for Azure Functions. How to fix
Custom Label with multiple styles in TextField of Fluent UI
First impressions after using the new SPFX 1.22.2 with Heft