这SQL Update语句没报错有什么更新不了

xxingmen 2008-11-14 09:41:02
   protected void Button1_Click(object sender, EventArgs e)
{
string insert = "insert into my(title,Descriptionp,Keywords,Telephone,Email,createdata)values(@title,@Descriptionp,@Keywords,@Telephone,@email,@createdata)";
string update = "UPDATE [My] SET [title] = @title, [Descriptionp] = @Descriptionp, [Keywords] = @Keywords, [telephone] = @telephone, [email] = @email";
string sel = "select * from [my]";
string connstring = WebConfigurationManager.ConnectionStrings["qiluConnectionString"].ConnectionString;
SqlConnection conn = new SqlConnection(connstring);
conn.Open();
SqlCommand cmd = new SqlCommand(sel, conn);
try
{
cmd.Parameters.Add("@title", SqlDbType.VarChar).Value = title.Text.Trim();
cmd.Parameters.Add("@Descriptionp", SqlDbType.VarChar).Value = Descriptionp.Text.Trim();
cmd.Parameters.Add("@Keywords", SqlDbType.VarChar).Value = keywords.Text.Trim();
cmd.Parameters.Add("@Telephone", SqlDbType.VarChar).Value = telephone.Text.Trim();
cmd.Parameters.Add("@email", SqlDbType.VarChar).Value = email.Text.Trim();
cmd.Parameters.Add("@createdata", SqlDbType.VarChar).Value = DateTime.Now;
SqlDataReader rea = cmd.ExecuteReader();
if (!rea.Read())
{
rea.Close();
cmd.CommandText = insert;
cmd.ExecuteNonQuery();
Page.ClientScript.RegisterStartupScript(this.GetType(), "kk", "<script>alert('成功(*^ _ ^*)')</script>");
}
else
{
rea.Close();
cmd.CommandText = update;
cmd.ExecuteNonQuery();
Page.ClientScript.RegisterStartupScript(this.GetType(), "kk", "<script>alert('更新成功')</script>");
}
}
catch
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "kk", "<script>alert('数据插入失败,请检查输入是否正确或申请技术支持')</script>");
}
finally
{
cmd.Dispose();
conn.Close();
}
}




调试的时候没有提示出错, 就是更新不了

更新是用cmd.ExecuteNonQuery(); 没错吧
...全文
219 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
编程有钱人了 2008-11-15
  • 打赏
  • 举报
回复
无条件的更新 是不是很危险啊
yuziyuedemsdn 2008-11-15
  • 打赏
  • 举报
回复
JF
路人乙e 2008-11-15
  • 打赏
  • 举报
回复
cmd.Parameters.Add("@title", SqlDbType.VarChar).Value = title.Text.Trim();
cmd.Parameters.Add("@Descriptionp", SqlDbType.VarChar).Value = Descriptionp.Text.Trim();
cmd.Parameters.Add("@Keywords", SqlDbType.VarChar).Value = keywords.Text.Trim();
cmd.Parameters.Add("@Telephone", SqlDbType.VarChar).Value = telephone.Text.Trim();
cmd.Parameters.Add("@email", SqlDbType.VarChar).Value = email.Text.Trim();

SqlDataReader rea = cmd.ExecuteReader();
if (!rea.Read())
{
cmd.Parameters.Add("@createdata", SqlDbType.VarChar).Value = DateTime.Now;
rea.Close();
cmd.CommandText = insert;
cmd.ExecuteNonQuery();
Page.ClientScript.RegisterStartupScript(this.GetType(), "kk", "<script>alert('成功(*^ _ ^*)')</script>");
}
mltx 2008-11-15
  • 打赏
  • 举报
回复
是什么数据库,Oracle?可以把语句先在pl/sql中试一下就清楚了
xxingmen 2008-11-15
  • 打赏
  • 举报
回复
where 写了,还是更新不了, 用控件了, 呵呵
ufo20020427 2008-11-15
  • 打赏
  • 举报
回复
用SQL Server Profiler看下执行情况
曾默 2008-11-15
  • 打赏
  • 举报
回复
这个判断改成别的方式试试
SqlDataReader rea = cmd.ExecuteReader();
if (!rea.Read())
{

用datatable的方式去判断下库里有没有数据

或许是根本没执行到else语句
hdzdw 2008-11-14
  • 打赏
  • 举报
回复
string insert = "insert into my(title,Descriptionp,Keywords,Telephone,Email,createdata)values(@title,@Descriptionp,@Keywords,@Telephone,@email,@createdata)";

看是不是这里错了,注意空格!
Fibona 2008-11-14
  • 打赏
  • 举报
回复
你的语句我测试了没有问题
Fibona 2008-11-14
  • 打赏
  • 举报
回复
ExecuteNonQuery();没有错
哥本哈士奇 2008-11-14
  • 打赏
  • 举报
回复
hi,我发现你的update语句没有写where子句哦.
常理来说更新的时候,你确定记录存在了,应该把其id读取出来,然后加到where的后面.

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧