当前位置:编程学习 > C#/ASP.NET >>

帮忙看下这段代码是哪儿的错

string mystr = "Data Source=2A8F16F1506B4CE;Initial Catalog=sabing;Integrated Security=True";
SqlConnection conn = new SqlConnection(mystr);
conn.Open();
SqlCommand cmd = new SqlCommand("detele from student where 姓名='"+comboBox3.SelectedItem.ToString()+"'");
cmd.CommandType = CommandType.Text;
cmd.Connection = conn;
cmd.ExecuteNonQuery();(老是说这错了 说是 from附近有语法错误)
MessageBox.Show("删除成功");
conn.Close();
xianshi();(这个是我自己定义的函数) --------------------编程问答-------------------- detele 写错了吧。应该是delete吧 --------------------编程问答-------------------- SqlCommand cmd = new SqlCommand("detele from student where 姓名='"+comboBox3.SelectedItem.ToString()+"'",conn); --------------------编程问答-------------------- SqlCommand cmd = new SqlCommand("detele from student where 姓名='"+comboBox3.SelectedItem.ToString()+"'"); 

delete 错了。 --------------------编程问答-------------------- 看错了
SqlCommand cmd = new SqlCommand("delete from student where 姓名='"+comboBox3.SelectedItem.ToString()+"'"); --------------------编程问答-------------------- 啊~我去死了  别拦我~~~~~~~~~~~~~~~~~~~~~~~ --------------------编程问答-------------------- string mystr = "Data Source=(local);Initial Catalog=sabing;Integrated Security=True";
            SqlConnection conn = new SqlConnection(mystr);
            conn.Open();
            SqlCommand cmd = new SqlCommand("update student set 年龄=" + textBox3.Text + " where 姓名='" + comboBox2.SelectedItem.ToString() + "'");
            cmd.CommandType = CommandType.Text;
            cmd.Connection = conn;
            try
            {
                cmd.ExecuteNonQuery();
                MessageBox.Show("插入成功");
            }
            catch
            {
                MessageBox.Show("你的输入有误,请检查你的输入!");
            }
            finally
            {
                conn.Close();
            }

            xianshi();



但是但是~这短呢 
也是同样的错误啊
update没写错吧 --------------------编程问答-------------------- 把sql语句直接放到数据库中执行一下试试 --------------------编程问答-------------------- 确实有错呢
但是我不知道错在哪儿啊
update student set 年龄=11 where 姓名='张三'
这样是不对的? --------------------编程问答--------------------
引用 1 楼 gxynctz 的回复:
detele 写错了吧。应该是delete吧


正解 --------------------编程问答-------------------- update student set 年龄='" + textBox3.Text + "' --------------------编程问答-------------------- sql文拼接好像有错,SqlCommand cmd = new SqlCommand("update student set 年龄='" + textBox3.Text + "' where 姓名='" + comboBox2.SelectedItem.ToString() + "'"); 
--------------------编程问答-------------------- 无论你现在的代码哪里出错,先告诉你一个建议吧:

try 
   { 
      cmd.ExecuteNonQuery(); 
      MessageBox.Show("插入成功"); 
   } 
改为:
try 
   { 
      int temp = cmd.ExecuteNonQuery(); 
      if(temp > 0)
      {
         MessageBox.Show("成功"); 
      }
   }
因为ExecuteNonQuery方法是有返回值的,而且是有意义的 --------------------编程问答-------------------- 具体错误消息是什么,试试set 年龄='11' --------------------编程问答--------------------
引用 10 楼 netboygg 的回复:
update student set 年龄='" + textBox3.Text + "'


年龄的值类型是int不用加引号的 --------------------编程问答--------------------
引用 12 楼 changyuming 的回复:
无论你现在的代码哪里出错,先告诉你一个建议吧: 
把 
try 
  { 
      cmd.ExecuteNonQuery(); 
      MessageBox.Show("插入成功"); 
  } 
改为: 
try 
  { 
      int temp = cmd.ExecuteNonQuery(); 
      if(temp > 0) 
      { 
        MessageBox.Show("成功"); 
      } 
  } 
因为ExecuteNonQuery方法是有返回值的,而且是有意义的



我有一段代码也是先前那样写的 但是不报错呀 证明这个问题应该不是很大吧 --------------------编程问答--------------------

set 年龄=" + textBox3.Text + " 

textBox3.Text 是字符串型。需要转换成int型就OK 了 。

set 年龄=" + Convert.toInt32(textBox3.Text) + "

应该是可以得。
--------------------编程问答--------------------
引用 11 楼 wxhx0502 的回复:
sql文拼接好像有错,SqlCommand cmd = new SqlCommand("update student set 年龄='" + textBox3.Text + "' where 姓名='" + comboBox2.SelectedItem.ToString() + "'"); 


那个是根据智能提示打出来的 不会有错 --------------------编程问答-------------------- 学习!
   --------------------编程问答--------------------
引用 16 楼 swalp 的回复:
C# code
set 年龄=" + textBox3.Text + " 



textBox3.Text 是字符串型。需要转换成int型就OK 了 。 

C# code
set 年龄=" + Convert.toInt32(textBox3.Text) + "



应该是可以得。 



不可以啊 依然报错   
问一下 知道怎么把我截的图放在帖子里吗?
给你们看下报错的那个 --------------------编程问答--------------------
引用 19 楼 iadog 的回复:
引用 16 楼 swalp 的回复:
C# code 
set 年龄=" + textBox3.Text + " 


textBox3.Text 是字符串型。需要转换成int型就OK 了 。 

C# code 
set 年龄=" + Convert.toInt32(textBox3.Text) + " 


应该是可以得。 
 


不可以啊 依然报错  
问一下 知道怎么把我截的图放在帖子里吗? 
给你们看下报错的那个


你把错误的消息发上来我看看。 --------------------编程问答-------------------- 额...
不会插入图片 我给你打吧 --------------------编程问答-------------------- 把图发到csdn博客上,地址拷过来
--------------------编程问答-------------------- cmd.ExecuteNonQuery(); 这句话是黄色的
然后一对话框指着他说
标题是
未处理sqlexception

内容是
 第一行:''附近有语法错误 --------------------编程问答-------------------- 把你的错误复制下来啊、不能复制吗?
再有就是在你执行SQL操作和有for循环的地方加上try,catch语句。这样得话有异常能捕捉到。 --------------------编程问答--------------------
引用 24 楼 swalp 的回复:
把你的错误复制下来啊、不能复制吗? 
再有就是在你执行SQL操作和有for循环的地方加上try,catch语句。这样得话有异常能捕捉到。



试过的 和没加他一样 --------------------编程问答-------------------- 你把你的SQL语句复制下来,到数据库里执行一下。看看是哪错误。参数就自己随便放一个就行。关键是看SQL语句哪有错
未处理sqlexception
是未处理异常。加上try catch语句。 --------------------编程问答--------------------
引用 1 楼 gxynctz 的回复:
detele 写错了吧。应该是delete吧


正解!! --------------------编程问答--------------------
引用 8 楼 iadog 的回复:
确实有错呢 
但是我不知道错在哪儿啊 
update student set 年龄=11 where 姓名='张三' 
这样是不对的?



上面的就是SQL语句  我确实不知道错在哪儿啊 --------------------编程问答-------------------- 姓名=“张三” --------------------编程问答--------------------
引用 29 楼 swalp 的回复:
姓名=“张三”


我可以很肯定的说
这个是错的
C#里字符串才是""
数据库路里是'' --------------------编程问答-------------------- 我好像不对吧。
你看看是不是你用的表不在你现在用的数据库中。 --------------------编程问答-------------------- 你那句语句是对的啊。我刚看了看书。你那句是对的。
你看看你的表建在哪个数据库中 --------------------编程问答-------------------- 额...
在的 在的
我用了很多次了
这个只是其中一个功能
其他的都能用
就他不行 --------------------编程问答-------------------- 晕,
你在数据库中执行的时候提示什么错误 --------------------编程问答-------------------- 第 1 行: ' ' 附近有语法错误。 --------------------编程问答--------------------
引用 35 楼 iadog 的回复:
第 1 行: ' ' 附近有语法错误。



和在VS里运行报的是同样的错
哎~这是什么事啊

我其他的代码
基本和他一样
就数据库语句不一样
怎么就错了捏 --------------------编程问答-------------------- 姓名='张三'别告诉我你的等号是中文的等号啊。
update student
       update student set 年龄=11 where 姓名='张三' 
GO
年龄=11   姓名='张三' 
这两个等号,哪个是中文的? --------------------编程问答--------------------
引用楼主 iadog 的帖子:
string mystr = "Data Source=2A8F16F1506B4CE;Initial Catalog=sabing;Integrated Security=True"; 
SqlConnection conn = new SqlConnection(mystr); 
conn.Open(); 
SqlCommand cmd = new SqlCommand("detele from student where 姓名='"+comboBox3.SelectedItem.ToString()+"'"); 
cmd.CommandType = CommandType.Text; 
cmd.Connection = conn; 
cmd.ExecuteNonQuery();(老是说这错了 说是 from附近有语法错误) 
M…


试试
int num=0;
string mystr="Server=你的IP;DataBase=你的数据库名sabing;UID=SQL登录名(本地默认通常为sa);Pwd=";
SqlConnection conn = new SqlConnection(mystr); 
SqlCommand cmd = new SqlCommand("detele from student where [姓名]='"+comboBox3.SelectedItem.ToString()+"' "); 
cmd.CommandType = CommandType.Text; 
if (conn.State != ConnectionState.Open) { conn.Open(); }
cmd.Connection = conn; 
num = cmd.ExecuteNonQuery();
...
--------------------编程问答--------------------
引用 38 楼 AXCSF 的回复:
引用楼主 iadog 的帖子:
string mystr = "Data Source=2A8F16F1506B4CE;Initial Catalog=sabing;Integrated Security=True"; 
SqlConnection conn = new SqlConnection(mystr); 
conn.Open(); 
SqlCommand cmd = new SqlCommand("detele from student where 姓名='"+comboBox3.SelectedItem.ToString()+"'"); 
cmd.CommandType = CommandType.Text; 
cmd.Connection = conn; 
cmd.ExecuteNonQuery();(老是说这错了 说是 …


他在数据库中执行都有错,说明他的SQL语句有错吧,不是conn.Open(); 的问题了吧? --------------------编程问答-------------------- 额...确实

但是 但是~
全改英文后  依然... 依然... --------------------编程问答-------------------- 可以断定是 sql 语句问题。LZ检查 --------------------编程问答-------------------- 泪奔~~
就我现在的水平
我看了它一晚上了
我都觉得它没错啊 --------------------编程问答-------------------- 你调试的时候,在SqlCommand cmd = new SqlCommand("detele from student where 姓名='"+comboBox3.SelectedItem.ToString()+"'");上设置一个断点,运行完这句之后, 鼠标点上cmd这边变量, 然后查看一下它里面的SelectCommand这个属性里的内容, 应该是那条SQL语句.把它拷贝出来,在数据库软件中执行一下, 如果没有问题. 说明不是拼写错误,应该是调用执行时的问题. --------------------编程问答-------------------- 我给你写的你试了吗?
--------------------编程问答-------------------- 早试过了
语句我觉得是没错的
但是  在数据库里都用不起啊 --------------------编程问答--------------------
引用 42 楼 iadog 的回复:
泪奔~~ 
就我现在的水平 
我看了它一晚上了 
我都觉得它没错啊


你的语句我run了一遍没问题呀

还有,我发现LZ的列名都是汉字嘛

以后最好用英文. --------------------编程问答-------------------- 哎~
我还是明天问老师去
因为要用控件把表名显示出来
所以特别换中文的 --------------------编程问答--------------------
引用 1 楼 gxynctz 的回复:
detele 写错了吧。应该是delete吧

千真万确 --------------------编程问答-------------------- 呵呵,UP
还是个学生哦
头像用女的???
关注的人就是多噢. --------------------编程问答-------------------- SqlCommand cmd = new SqlCommand("update student set 年龄=" + textBox3.Text + " where 姓名='" + comboBox2.SelectedItem.ToString() + "'");

年龄=  这个等于怎么用的是全角的等于呀。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,