SqlDbType.NChar, 12));
myCommand.Parameters.Add(new SqlParameter("@Address",
SqlDbType.NVarChar, 40));
myCommand.Parameters.Add(new SqlParameter("@City",
SqlDbType.NVarChar, 20));
myCommand.Parameters.Add(new SqlParameter("@State",
SqlDbType.NChar, 2));
myCommand.Parameters.Add(new SqlParameter("@Zip", SqlDbType.NChar,
5));
myCommand.Parameters.Add(new SqlParameter("@Contract",
SqlDbType.NVarChar,1));
myCommand.Parameters["@Id"].Value =
MyDataGrid.DataKeys[(int)e.Item.ItemIndex];
String[] cols =
{"@Id","@LName","@FName","@Phone","@Address","@City","@State","@Zip","@Contra
ct"};
int numCols = e.Item.Cells.Count;
for (int i=2; i<numCols-1; i++) //跳过第一、第二和最后一列
{
String colvalue =((TextBox)e.Item.Cells[i].Controls[0]).Text;
// 检查在所需字段中是否有空值
if (i<6 && colvalue == "")
{
Message.InnerHtml = "错误:“作者 ID”、“姓名”或“电话”不
允许使用空值";
Message.Style["color"] = "red";
return;
}
myCommand.Parameters[cols[i-1]].Value = colvalue;
}
//追加最后一行,将 true/false 值转换为 0/1
if
(String.Compare(((TextBox)e.Item.Cells[numCols-1].Controls[0]).Text,
"True", true)==0)
myCommand.Parameters["@Contract"].Value = "1";
else
myCommand.Parameters["@Contract"].Value = "0";
myCommand.Connection.Open();
try
{
myCommand.ExecuteNonQuery();
Message.InnerHtml = "<b>已更新记录</b><br>" + updateCmd;
MyDataGrid.EditItemIndex = -1;
}
catch (SqlException exc)
{
if (exc.Number == 2627)
Message.InnerHtml = "错误:已存在具有相同主键的记录";
else
Message.InnerHtml = "错误:未能更新记录,请确保正确填写了字段
";
Message.Style["color"] = "red";
}
myCommand.Connection.Close();
BindGrid();
}
public void BindGrid()
{
SqlDataAdapter myCommand = new SqlDataAdapter("select * from
Authors", myConnecti