ASP.NET更新数据库我的不能更新它也不报错

string str1 = "UPDATE 顾客表 SET 客户姓名 = @客户姓名, 性别 = @性别, 联系电话 = @联系电话, Email地址 = @Email地址, 邮政编码 = @邮政编码, 通讯地址= @通讯地址 where 客户ID=@客户ID";
SqlConnection conn = new SqlConnection(str);
conn.Open();
SqlCommand cmd = new SqlCommand(str1, conn);
cmd.Parameters.Add("@客户ID", SqlDbType.Char);
cmd.Parameters.Add("@客户姓名", SqlDbType.Char);
cmd.Parameters.Add("@性别", SqlDbType.Char);
cmd.Parameters.Add("@联系电话", SqlDbType.VarChar);
cmd.Parameters.Add("@Email地址", SqlDbType.VarChar);
cmd.Parameters.Add("@邮政编码", SqlDbType.Char);
cmd.Parameters.Add("@通讯地址", SqlDbType.VarChar);
cmd.Parameters["@客户ID"].Value = TextBox3.Text.Trim() ;
cmd.Parameters["@客户姓名"].Value = TextBox4.Text.Trim();
cmd.Parameters["@性别"].Value = RadioButtonList2.SelectedValue.ToString();
cmd.Parameters["@联系电话"].Value = TextBox11.Text.Trim();
cmd.Parameters["@Email地址"].Value = TextBox12.Text.Trim();
cmd.Parameters["@邮政编码"].Value = TextBox10.Text.Trim();
cmd.Parameters["@通讯地址"].Value = TextBox9.Text.Trim();
cmd.ExecuteNonQuery();
conn.Close();
不要跟我说什么代码太少,什么之类的话,我补充下里面的数据类型是匹配的,更新的时候不报错不也能更新,还有我在查调分析器里调试是成功的。
不使用参数,我试了下也不行。以前我用的sqldatasource的update方法也不能更新数据源,所以改了手写。

1、保证你使用的数据库是sqlserver
2、试试不用参数传递是否能通过
3、保证你的表参数与你参数传递过程中的参数类型一致,包括表字段的长度。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-11-13
public void Insert(ProductNewInfo info)
{
SqlParameter[] parameters = {
new SqlParameter("@name", SqlDbType.VarChar,150),
new SqlParameter("@productType", SqlDbType.Int,4),
new SqlParameter("@shortIntroduction", SqlDbType.VarChar,200),
new SqlParameter("@imageSmall", SqlDbType.VarChar,200),
new SqlParameter("@imageBig", SqlDbType.VarChar,200),
new SqlParameter("@lastEditDateTime", SqlDbType.DateTime),
new SqlParameter("@tabIntroduction", SqlDbType.Text),
new SqlParameter("@tabHighLights", SqlDbType.Text),
new SqlParameter("@tabScreenShots", SqlDbType.Text),
new SqlParameter("@tabReportsManager", SqlDbType.Text),
new SqlParameter("@tabCompare", SqlDbType.Text),
new SqlParameter("@tabModelsAndPrices", SqlDbType.Text),
new SqlParameter("@isDel", SqlDbType.Int,4),
new SqlParameter("@topOrder", SqlDbType.Int,4),
new SqlParameter("@clickCount", SqlDbType.Int,4),
new SqlParameter("@price", SqlDbType.Money)};
parameters[0].Value = info.Name;
parameters[1].Value = info.ProductType.Id;
parameters[2].Value = info.ShortIntroduction;
parameters[3].Value = info.ImageSmall;
parameters[4].Value = info.ImageBig;
parameters[5].Value = info.LastEditDateTime;
parameters[6].Value = info.Introduction.ToString();
parameters[7].Value = info.HighLights.ToString();
parameters[8].Value = info.ScreenShots.ToString();
parameters[9].Value = info.ReportManager.ToString();
parameters[10].Value = info.Compare.ToString();
parameters[11].Value = info.ModelsAndPrices.ToString();
parameters[12].Value = info.IsDel;
parameters[13].Value = info.TopOrder;
parameters[14].Value = info.ClickCount;
parameters[15].Value = info.Price;

DbHelperSQL.ExecuteSql(_INSERT_SQL, parameters);
}

使用类似这样的方法去添加参数试试看。
第2个回答  2009-11-13
你试试把创建及赋值Parameters参数的顺序改成跟sql语句中出现的顺序一样能不能解决问题
第3个回答  2009-11-15
ok 了吗
相似回答