刚接触C#的菜鸟求助大神,使用SQL操作数据库的问题

qq_34799909 2016-04-26 04:59:56
c#中,调用SQL写数据库,老是报'.' 附近有语法错误。检查了好长时间,不知道错误在那,求大神帮忙,主要用sql写的代码如下
  if (MessageBox.Show("是否修改该条记录", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
{
con.Open();

SqlCommand cmd = new SqlCommand();
string str = "update [test].[dbo].[测试部门表] set 部门='" + this.textBox1.Text + "'where 部门编号=" + this.label3.Text + "";
cmd.CommandText = str;
cmd.Connection = con;
cmd.ExecuteNonQuery();
con.Close();
showinf();
MessageBox.Show("修改成功");
}



con连接字符串已经写好并且连接成功了,怀疑是赋给str的那串字符串有问题了,但是,修改相对应的字段的值,不是应该就是那样写么?

showwinf方法是吧数据重新更新进dataGridView中,问题应该不是在这

 private void showinf()
{
using (SqlConnection con = new SqlConnection("Data Source=PC-1210AFB;Initial Catalog=test;User ID=sa;Password=....."))
{
DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter("select * from 测试部门表", con);
da.Fill(dt);
this.dataGridView1.DataSource = dt.DefaultView;
}
}


用同样的方法,写sql语句删除数据库对应的行时也出现问题,执行程序没报错,但是就是不删除指定的行数据,很郁闷。



 if(MessageBox.Show("是否删除该条记录","提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Question)==DialogResult.OK)
{
con.Open();

SqlCommand cmd = new SqlCommand();
string str = "delete from [test].[dbo].[测试部门表] where 部门=' " + this.textBox1.Text + " '";
cmd.CommandText = str;
cmd.Connection = con;
cmd.ExecuteNonQuery();
con.Close();
showinf();
MessageBox.Show("删除成功");
}
...全文
169 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_34799909 2016-04-27
  • 打赏
  • 举报
回复
感谢各位大神,问题已经得到完美解决
thj0775 2016-04-26
  • 打赏
  • 举报
回复
支持6楼的说法!
dlijian 2016-04-26
  • 打赏
  • 举报
回复
【textBox1.Text + "'where 部门编号】where前面没有空格 你可以把SQL抽出来,放到SQL语句查询分析器里看一下。 哪里错了一眼就看出来,可以去查询分析器上慢慢调试。
衣舞晨风 2016-04-26
  • 打赏
  • 举报
回复
http://blog.csdn.net/jiankunking/article/details/17992055
cgwr 2016-04-26
  • 打赏
  • 举报
回复
.textBox1.Text + "'where 部门编 where前面没有空格
plcly1 2016-04-26
  • 打赏
  • 举报
回复
SQL语句先查询分析器里看一下,然后断点看看语句和你自己的是不是一样
SugarBaiTu 2016-04-26
  • 打赏
  • 举报
回复
去掉[test]. 试试看
秋的红果实 2016-04-26
  • 打赏
  • 举报
回复
首先确认,数据库里有你要删除的记录没有 其次,cmd.ExecuteNonQuery()>0才表示删除、更新、插入成功,要if判断 再次,dbo似乎不用[]括起来
  • 打赏
  • 举报
回复
部门=' " + this.textBox1.Text + " '" 删除可以明显的看到前后多了空格 然后看sql没明显的.问题,看来是不是你自己的拼接都出sql注入了,你debug看下最终实际执行时生成的sql
yangyugw 2016-04-26
  • 打赏
  • 举报
回复
打断点 ,拿出commandtext字符串,也就是你要执行的sql,然后放到sqlserver去执行,看提示就行了

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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