码迷,mamicode.com
首页 > 数据库 > 详细

C#中往SQLServer插入数据时遇到BUG

时间:2016-06-26 18:29:27      阅读:241      评论:0      收藏:0      [点我收藏+]

标签:

错误信息如下:

“System.Data.SqlClient.SqlException”类型的未经处理的异常在 System.Data.dll 中发生

其他信息: “”附近有语法错误。

技术分享

文字版代码如下:

1 sqlCmd.CommandText =string.Format( "insert into [dbo].[Table4Test]([ID],[Name],[Password])values({0},‘{1}‘,‘{2}‘)", dataOfItem[0],dataOfItem[1],dataOfItem[2]);
2 
3  sqlCmd.ExecuteNonQuery();

可以看出,出错的地方就是那一句SQL语句。

 

既然是SQL语句的问题为何不贴进SQL里去调试一番呢?

于是和我便从从程序出错时提取出出错的那句SQL语句。

技术分享

Ctrl+c、Ctrl+V,我将它原原本本的复制到了SQL Server Management Studio里。

 

F5运行。

技术分享

 

 

经过一番修改,确认是括号问题,重新输入一遍括号后,数据成功入库。

技术分享

 

 

看起来现在只是括号的半角和全角问题,可惜我错了。

Ctrl+c、Ctrl+V,我将它原原本本的复制到了Microsoft Visual Studio里。

 技术分享

继续报错。

 

随后我又经行了如下尝试,皆无果。

1、将String.Format()方法更换成String的加号运算符重载。

2、将从Visual Studio 2012更换成2015。

3、将.Net 框架从4.6.1更换为4.5。

4、重启SQL Server 实例。

5、重启计算机。

 

唯一成功过的一次是我把SQL语句手动打一遍,像这样:

1 sqlCmd.CommandText ="insert into [dbo].[Table4Test]([ID],[Name],[Password])values(0,‘吴静钰‘,‘1‘)";
2 
3 sqlCmd.ExecuteNonQuery();

问题看似出在了字符串合并上。

 

根据runliuv的建议,我用File.AppendAllText()方法导出了SQL 语句的文本,并将notepad++软件设为显示所有符号。

技术分享

看不出异常。

 

最后把环境贴一下:

系统:Windows 10 专业版 1511。

IDE:Microsoft Visual Studio 2012/2015。

.Net 框架:.Net Framework4.5/4.6.1

SQL Server : Microsoft SQL Sever 2012。

 

对了,还有相同案例。

http://bbs.csdn.net/topics/390687746

C#中往SQLServer插入数据时遇到BUG

标签:

原文地址:http://www.cnblogs.com/Earl-Jones/p/5618216.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!