C#向SQL数据库插入记录的问题!!!

问题描述

我的代码:try{if(textBox1.Text!=""){//设定数据连接字符串,此字符串的意思是打开Sqlserver数据库,服务器名称为server1,数据库为data1,用户名为sa。stringstrCon="Provider=SQLOLEDB.1;PersistSecurityInfo=False;InitialCatalog=通讯录;UserID=sa;DataSource=JUJUMAO";OleDbConnectionmyConn=newOleDbConnection(strCon);myConn.Open();stringstrInsert="INSERTINTO用户信息表(姓名,年龄,性别,联系电话,性格,所在院校,爱好,)VALUES(";strInsert+=textBox1.Text+",";strInsert+=textBox2.Text+",";strInsert+=textBox3.Text+",";strInsert+=textBox4.Text+",";strInsert+=textBox5.Text+",";strInsert+=textBox6.Text+",";strInsert+=textBox7.Text+")";System.Data.OleDb.OleDbCommandinst=newSystem.Data.OleDb.OleDbCommand(strInsert,myConn);inst.ExecuteNonQuery();myConn.Close();通讯录DataSet.Tables["person"].Rows[用户信息表BindingSource.Position].BeginEdit();通讯录DataSet.Tables["person"].Rows[用户信息表BindingSource.Position].EndEdit();通讯录DataSet.Tables["person"].AcceptChanges();}else{MessageBox.Show("姓名不能为空!","错误!");}但是再向数据库添加记录的时候出错保存数据记录发生System.Data.OleDb.OleDbException:第1行')'附近有语法错误在System.Data.OleDb.OleDbcommand.ExecuteReadrInternat(CommandBehaviorbehavior,Stringmethod)在System.Data.OleDb.OleDbcommand.ExecuteNonQuery()在WindowsApplication1.Form2.button7_click(objectsender,EventArgse).............行号121这是什么问题呀!!!高手能解释一下么。本人才开始学C#不太会,能讲清楚些最好,谢谢了!行号121语句是inst.ExecuteNonQuery();

解决方案

解决方案二:
VALUES('";strInsert+=textBox1.Text+"','";strInsert+=textBox2.Text+"','";strInsert+=textBox3.Text+"','";strInsert+=textBox4.Text+"','";strInsert+=textBox5.Text+"','";strInsert+=textBox6.Text+"','";strInsert+=textBox7.Text+"')";
解决方案三:
去看看SQL
解决方案四:
最好还是写成带parameters的.
解决方案五:
把值都用单引号括起来
解决方案六:
VALUES('";strInsert+=textBox1.Text+"','";strInsert+=textBox2.Text+"','";strInsert+=textBox3.Text+"','";strInsert+=textBox4.Text+"','";strInsert+=textBox5.Text+"','";strInsert+=textBox6.Text+"','";strInsert+=textBox7.Text+"')";你的sql语句要好好的补补了,字符串类型要单引号括起来,还有啊,不建议拼凑sql,会造成注入攻击的,推荐参数化parameter
解决方案七:
http://www.knowsky.com/339188.html
解决方案八:
还是问题依旧啊···保存数据记录发生System.Data.OleDb.OleDbException:第1行')'附近有语法错误在System.Data.OleDb.OleDbcommand.ExecuteReadrInternat(CommandBehaviorbehavior,Stringmethod)在System.Data.OleDb.OleDbcommand.ExecuteNonQuery()在WindowsApplication1.Form2.button7_click(objectsender,EventArgse)
解决方案九:
最好的找错方法时,运行时把你的数据库语句打在控制台上,然后复制到查询分析其中,运行下,看哪里错了
解决方案十:
还有种不让数据库语句出错的方法是:先在查询分析器中吧数据库语句写一遍,确定没有错后,复制到程序中,然后将值改为你所用的变量值
解决方案十一:
char类型的列需要在前后加单撇号。
解决方案十二:
把这段代码用在了查询分析器中运行了下!stringstrInsert="INSERTINTO用户信息表(姓名,年龄,性别,联系电话,性格,所在院校,爱好,)VALUES(";strInsert+=textBox1.Text+",";strInsert+=textBox2.Text+",";strInsert+=textBox3.Text+",";strInsert+=textBox4.Text+",";strInsert+=textBox5.Text+",";strInsert+=textBox6.Text+",";strInsert+=textBox7.Text+")";System.Data.OleDb.OleDbCommandinst=newSystem.Data.OleDb.OleDbCommand(strInsert,myConn);inst.ExecuteNonQuery();myConn.Close();服务器:消息170,级别15,状态1,行1第1行:'='附近有语法错误。怎么解决啊····
解决方案十三:
加上引号stringstrInsert="INSERTINTO用户信息表(姓名,年龄,性别,联系电话,性格,所在院校,爱好,)VALUES('";strInsert+=textBox1.Text+"','";strInsert+=textBox2.Text+"','";strInsert+=textBox3.Text+"','";strInsert+=textBox4.Text+"','";strInsert+=textBox5.Text+"','";strInsert+=textBox6.Text+"','";strInsert+=textBox7.Text+"')";System.Data.OleDb.OleDbCommandinst=newSystem.Data.OleDb.OleDbCommand(strInsert,myConn);inst.ExecuteNonQuery();myConn.Close();

解决方案十四:
用楼上的改后。依然存在那个问题!!!保存数据记录发生System.Data.OleDb.OleDbException:第1行')'附近有语法错误在System.Data.OleDb.OleDbcommand.ExecuteReadrInternat(CommandBehaviorbehavior,Stringmethod)在System.Data.OleDb.OleDbcommand.ExecuteNonQuery()在WindowsApplication1.Form2.button7_click(objectsender,EventArgse)改怎么弄也!!!
解决方案十五:
设个断点,设法得到insert的完整语句,这样就知道语法错在哪了。这种问题一般是缺少引号数据库里的varchar等类型都是需要加''的
解决方案:
12楼的也多了一个,号了(爱好后面没豆号的)```串语句这东西小心点就是了```
解决方案:
stringstrInsert="INSERTINTO用户信息表(姓名,年龄,性别,联系电话,性格,所在院校,爱好,)VALUES('";爱好的后面不要家","

时间: 2024-11-05 21:56:32

C#向SQL数据库插入记录的问题!!!的相关文章

asp中用insert into语句向数据库插入记录(添加信息)的方法_应用技巧

一.'建立register.asp 复制代码 代码如下: <%@ language=vbscript %> <html > <head> <title>注册页面</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <style type="text/css">

asp中用insert into语句向数据库插入记录(添加信息)的方法

一.'建立register.asp 复制代码 代码如下: <%@ language=vbscript %> <html > <head> <title>注册页面</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <style type="text/css">

关于用SqlDataAdapter向数据库插入记录的问题

问题描述 SqlCommandBuilderbuilder=newSqlCommandBuilder(adapter);adapter.InsertCommand=builder.GetInsertCommand();DataRowrow=table.NewRow();row[0]=textBoxStuno.Text;row[1]=textBoxName.Text;row[2]=sex;row[3]=dateTimePicker1.Text;row[4]=textBoxDept.Text;tab

问个问题。。关于数据库插入记录的

问题描述 表tab的ID为自增长,插入数据后获取自增长的ID方法一:在代码里直接写strInsert="insertintotab(name...)values('张三',...);selectident_current('tab')";后面获取自增的语句可能因数据库不同而不同..这里以sqlserver为例方法二:在存储过程里...insertintotab(name,....)values(@name,...)set@out_new_id=ident_current('tab')想

sql-SQL数据库 某些记录被 reverse 颠倒 该怎么判断记录是否被reverse颠倒?

问题描述 SQL数据库 某些记录被 reverse 颠倒 该怎么判断记录是否被reverse颠倒? SQL数据库 某些记录被 reverse 颠倒 该怎么判断记录是否被reverse颠倒,然后把颠倒过的reverse回来? 解决方案 比如判断第一个字符,你需要有特征才能判断. 解决方案二: 用SQL语句判断数据库中的记录是否存在----------------------

sql数据库被挂马或插入JS木马的解决方案

很多网站可能遭遇到sql数据库被挂马者插入JS木马的经历:mssql的每个varchar.text字段都被自动插入一段js代码,即使删除这段代码,如果没有从源头上解决,几分钟后,js代码就又会自动插入数据库.    这很有可能是程序自动执行的,黑客先从搜索引擎google.百度等搜索存在漏洞的采用asp+mssql设计的网站,然后采用小明子这样的注入扫描工具,扫描整个网站,一旦发现有sql注入的漏洞或者上传漏洞,黑客就通过各种手段,上传自己的大马,如海阳木马:然后,黑客就把这个网站纳入他的肉鸡列

全面解决--如何获得刚插入数据库的记录的ID号?

插入|解决|数据|数据库 如何获得刚插入数据库的记录的ID号? 1.SQL Server 对于SQL Server 2000来说,它提供了两个全新的函数(IDENT_CURRENT,SCOPE_IDENTITY),并且改进了@@IDENTITY的不足.当你插入新记录后,可以调用函数: PRINT IDENT_CURRENT('table') '这将获得新的IDENTITY值,不管数据库中是不是有记录添加(这就避免了@@IDENTITY的连接限制) 或者:PRINT SCOPE_IDENTITY(

在Word中插入Access、SQL数据库数据

Word共享Access数据最简单的方法是复制.粘贴,你只需打开Access数据库中的表,就可以像复制Excel数据那样复制Access数据然后粘贴到Word中.另外,Word还可以使用插入记录的方法共享Access.SQL数据. 1.插入全部记录 右键单击Word工具栏,选择"数据库"命令,打开"数据库"工具栏,单击"插入数据库"按钮,在打开的"数据库"对话框中单击"获取数据"按钮,在打开的对话框中双击A

mysql千万级数据库插入速度和读取速度的调整记录

  (1)提高数据库插入性能中心思想:尽量将数据一次性写入到Data File和减少数据库的checkpoint 操作.这次修改了下面四个配置项: 1)将 innodb_flush_log_at_trx_commit 配置设定为0:按过往经验设定为0,插入速度会有很大提高. 0: Write the log buffer to the log file and flush the log file every second, but do nothing at transaction commi