C#数据库insert语句用法用insert增加记录提示出错。代码如下;请问哪里错了?

在c#中插入Access数据库记录时老提示“INSERT INTO 语句的语法错误”,为什么?
[问题点数:20分,结帖人liuhaijin]
在c#中插入Access数据库记录时老提示“INSERT INTO 语句的语法错误”,为什么?
[问题点数:20分,结帖人liuhaijin]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2002年 总版技术专家分年内排行榜第一
2003年 总版技术专家分年内排行榜第二
本帖子已过去太久远了,不再提供回复功能。向数据库中插入记录失败c# asp.net_百度知道自己没办法发现错误,C#中往数据库添加数据的代码。_百度知道用sql语句向数据表中插入记录的格式为:
INSERT INTO [数据库名!] 表名 [(字段名表)] VALUES (表达式表)
关于Insert语句的格式及用法请参考:sql语言教程。
本例对看实例学VFP:向数据表中添加记录时自动生成编号一例的插入数据部分用sql语句进行了改写,运行界面如下图:
本例用到了&数据1&数据库中的&网站信息表&,关于该数据库的情况已经在看实例学VFP:示例数据库一文中给出,这里不再详述。
制作步骤如下:
一、新建表单form1,并将其Caption属性值设为&用sql语句向数据表中添加记录&,AutoCenter属性值设置为.t.,widht属性值设为290,height属性值设为210,将其保存为&用sql语句向数据表中添加记录.scx&。
二、向表单添加一个grid控件,将其readonly属性设置为.t.,其RecordSourceType值采用默认的&1-别名&,在表单设计器中将其宽和高粗略调小一些即可,具体属性值我们将在表单的init事件代码中对其进行设置。
三、向表单添加三个Label控件,其属性值依次设置为&编号&、&网站名称&和&网站网址&,将这三个控件排成一列;在这一列Label控件右侧添加三个文本框控件,属性值不用设置采用默认即可,也把它们排成一行;在第一个文本框的右侧添加两个命令按钮command1和command2,其Caption属性值依次设置为&添加&和&退出&。适当调整一下各控件的大小和位置,&表单设计器&如下图所示:
四、添加事件代码:
(一)表单form1的unload事件:
set exact off
close data
(二)表单form1的init事件:
set exact on
set talk off
use 网站信息表
this.Text1.value=""
this.Text2.value=""
this.Text3.value=""
with this.grid1
.width=290
.height=110
.recordsource="网站信息表"
.deletemark=.f.
.visible=.t.
.readonly=.t.
.ColumnCount=3
.Column1.Header1.Caption="编号"
.Column1.Header1.BackColor=RGB(255,255,190)
.Column2.Header1.BackColor=RGB(255,255,190)
.Column2.Header1.Caption="网站名称"
.Column3.Header1.BackColor=RGB(255,255,190)
.Column3.Header1.Caption="网站网址"
.Column1.width=75
.Column2.width=80
.Column3.width=150
this.grid1.Setall("DynamicBackColor","RGB(224,225,255)","Column")
calculate max(编号) to maxbh
&&在数据表中查找出序号最大的记录
szbh=val(right(maxbh,3))
&&取出数字部分
if szbh=0 then &&判断数字部分是否为0
zdbh='wz001'
zdbh='wz'+padl(alltrim(str(szbh+1)),3,'0') &&生成自动编号
this.Text1.value=zdbh
this.Text1.readonly=.t.
this.Text2.setfocus
(三)命令按钮command1(&添加&按钮)的click事件代码:
b=alltrim(thisform.Text2.value)
c=alltrim(thisform.Text3.value)
if empty(b) &&此条件成立则说明该文本框是空的
messagebox("请输入网站名称",16,"系统提示")
locate for 网站名称=b
if .not.eof() &&此条件成立,说明要添加的内容和表中有重复的
messagebox("不允许有重复的网站名称",16,"系统提示")
if empty(c)
messagebox("请输入网站网址",16,"系统提示")
locate for 网站网址=c
if .not.eof()
messagebox("不允许有重复的网站网址",16,"系统提示")
msg=messagebox('确定要添加记录吗?',32+4,'系统提示')
INSERT INTO 网站信息表;
(编号,网站名称,网站网址) ;
VALUES(alltrim(thisform.Text1.value),;
alltrim(thisform.Text2.value),;
alltrim(thisform.Text3.value))
messagebox('保存记录成功!',64,'系统提示')
thisform.grid1.refresh
calculate max(编号) to maxbh
&&在数据表中查找出序号最大的记录
szbh=val(right(maxbh,3))
&&取出数字部分
if szbh=0 then
&&判断数字部分是否为0
zdbh='wz001'
zdbh='wz'+padl(alltrim(str(szbh+1)),3,'0')
&&生成自动编号
thisform.Text1.value=zdbh
thisform.Text2.value=""
thisform.Text3.value=""
thisform.Text2.setfocus
thisform.refresh
(四)命令按钮command2(&退出&按钮)的click事件代码:thisform.release
五、运行&用sql语句向数据表中添加记录.scx&。
vfp基础教程:/vfpjc/index0.htm
vfp初级教程:/cc/index.htm
vfp中级教程:/mcc/mcc.htm
vfp高级教程:/hcc/hcc.htm
VFP网络开发:/VFPwz/vfpwlkf.htm
vfp调用api函数:/VFPwz/vfpapi.htm
VFP报表打印:/VFPwz/vfpreport.htm
VFP常用技术:/VFPwz/vfpcyjs.htm
VFP经验汇总:/VFPwz/vfpjyhz.htm
VFP控件使用:/VFPwz/vfpkjsy.htm
VFP数据处理:/VFPwz/vfpsjcl.htm
本例代码在Win2003+VFP6.0环境下调试通过。
查看全套&菜鸟也学VFP&教程
声明:该文章系网友上传分享,此内容仅代表网友个人经验或观点,不代表本网站立场和观点;若未进行原创声明,则表明该文章系转载自互联网;若该文章内容涉嫌侵权,请及时向
上一篇:下一篇:
相关经验教程
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.003 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
论文写作技巧c#向Access插入数据失败但不报错---很奇怪的现象-MS-SQLServer/疑难问题-mssql-电脑编程网c#向Access插入数据失败但不报错---很奇怪的现象-MS-SQLServer/疑难问题作者:xo_knight 和相关&&各位大虾:& &
小的最近在做一个小型C#应用程序,继上次sql语句语法错误之后,现在又出现了新的问题,下面我来详细描述一下:(前提):我用Access作为我应用程序的,在数据显示模块中没有出现异常,而且下拉框和datagridview等都能用select语句从数据库中读取数据进行数据绑
定,但当我想要插入一条新的记录的时候,cmd.ExecuteNonQuery()返回影响行数为一,但数据库中记录没有成功添加,整个过程没有任何异常,用调试中的sql语句直接在中运行,却能插入数据.&后来我上网找了一下,有人说是数据库权限问题,我就给数据库添加了密码,改了权限,改了连接字符串,还是能够进行查询,但插入还是无效,仍然没有报错.我的插入sql语句为:insert into Stock (GoodsNum,CustomerName,GoodsName,SumCount,SumBoxCount,GoodsPrice,GoodsValue,ChargeMan,Remark) values('008','饭店','刀',,776889,'大声的','反倒是');我的查询语句为:select GoodsNum as 序号,GoodsName as 产品名称,CustomerName as 进货厂名,GoodsCount as 件数,GoodsBoxCount as 箱数,GoodsPrice as 单价,GoodsSumValue as 总额,DealDate as 入库日期,ChargeMan as 经手人,Remark as 备注 from GoodsDeal where InOutFlag=0 order by DealDate desc&, &GoodsDeal&数据库的属性不是只读,而且我已经以共享模式打开了,请各位高手朋友指点一下,先谢谢了------回答---------------其他回答(10分)---------SQL code
insert into Stock (GoodsNum,CustomerName,GoodsName,SumCount,SumBoxCount,GoodsPrice,GoodsValue,ChargeMan,Remark) values(&008&,&饭店&,&刀&,,776889,&大声的&,&反倒是&)
我记得ACCESS,插入字符串用的双引号。------其他回答(40分)---------没碰到过,感觉挺奇怪的语句看起来没什么问题,不过ACESS与SQL SERVER有点区别.你先试着用语句:insert into Stock (GoodsNum,CustomerName,GoodsName,SumCount,SumBoxCount,GoodsPrice,GoodsValue,ChargeMan,Remark) values('008','饭店','刀',,776889,'大声的','反倒是')看是否会有记录.
------其他回答(10分)---------不是那个问题,如果说权限问题,那第通常是指ntfs权限问题。点开 access 文件所在文件夹,右健属性》安全性》增加对 iusr_计算机名用户 或 everyone 的写权限即可。但是你说程序没有报任何异常,这并不正常,代码中是否用了try catch,如果有,把它去掉,先看看报什么错再确定原因,否则就是无的放矢------其他回答(20分)---------SQL SERVER 和ACCESS的数据导入导出常规的数据导入导出:使用DTS向导迁移你的Access数据到SQL Server,你可以使用这些步骤:& 1在SQL SERVER企业管理器中的Tools(工具)菜单上,选择Data Transformation& 2Services(数据转换服务),然后选择
czdImport Data(导入数据)。& 3在Choose a Data Source(选择数据源)对话框中选择Microsoft Access as the Source,然后键入你的.mdb数据库(.mdb文件扩展名)的文件名或通过浏览寻找该文件。& 4在Choose a Destination(选择目标)对话框中,选择Microsoft OLE DB Prov ider for SQL Server,选择数据库,然后单击必要的验证方式。& 5在Specify Table Copy(指定表格复制)或Query(查询)对话框中,单击Copy tables(复制表格)。& 6在Select Source Tables(选择源表格)对话框中,单击Select All(全部选定)。下一步,完成。Transact-SQL语句进行导入导出:1.在SQL SERVER里查询access数据:-- ======================================================SELECT *& FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source=&c:\DB.mdb&;User ID=APassword=')...表名-------------------------------------------------------------------------------------------------2.将access导入SQL server& -- ======================================================在SQL SERVER 里运行:SELECT *INTO newtableFROM OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0',& &
'Data Source=&c:\DB.mdb&;User ID=APassword=' )...表名-------------------------------------------------------------------------------------------------3.将SQL SERVER表里的数据插入到Access表中-- ======================================================在SQL SERVER 里运行:insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',& 'Data Source=& c:\DB.mdb&;User ID=APassword=')...表名& (列名1,列名2)select 列名1,列名2
sql表实例:insert into
OPENROWSET('Microsoft.Jet.OLEDB.4.0',& &
'C:\db.mdb';'admin';'', Test)& select id,name from TestINSERT INTO OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'c:\trade.mdb'; 'admin'; '', 表名)SELECT *FROM sqltablename-------------------------------------------------------------------------------------------------------其他回答(10分)---------可能是Access数据库文件的读写权限的问题!建议看一下该盘符文件系统是NTFS还是FAT/FAT32?如果是NTFS的话,然后选中数据库右键开属性-&安全-&用户里的权限是否已经勾选“修改”与“写入”选项-&如果没有的话请选中-&确定!然后试试看看!如果是FAT/FAT32的话,进本上不存在以上问题,但要注意该文件的属性了,看看系统用户是否可以操作该文件。------其他回答(10分)---------没报错,查检你操作的access与你自己查看的access是不是同一个文件。 ------回答---------------其他回答(10分)---------SQL code
insert into Stock (GoodsNum,CustomerName,GoodsName,SumCount,SumBoxCount,GoodsPrice,GoodsValue,ChargeMan,Remark) values(&008&,&饭店&,&刀&,,776889,&大声的&,&反倒是&)
我记得ACCESS,插入字符串用的双引号。------其他回答(40分)---------
没碰到过,感觉挺奇怪的语句看起来没什么问题,不过ACESS与SQL SERVER有点区别.你先试着用语句:insert into Stock (GoodsNum,CustomerName,GoodsName,SumCount,SumBoxCount,GoodsPrice,GoodsValue,ChargeMan,Remark) values('008','饭店','刀',,776889,'大声的','反倒是')看是否会有记录.
------其他回答(10分)---------不是那个问题,如果说权限问题,那第通常是指ntfs权限问题。点开 access 文件所在文件夹,右健属性》安全性》增加对 iusr_计算机名用户 或 everyone 的写权限即可。但是你说程序没有报任何异常,这并不正常,代码中是否用了try catch,如果有,把它去掉,先看看报什么错再确定原因,否则就是无的放矢------其他回答(20分)---------
SQL SERVER 和ACCESS的数据导入导出常规的数据导入导出:使用DTS向导迁移你的Access数据到SQL Server,你可以使用这些步骤:& 1在SQL SERVER企业管理器中的Tools(工具)菜单上,选择Data Transformation& 2Services(数据转换服务),然后选择
czdImport Data(导入数据)。& 3在Choose a Data Source(选择数据源)对话框中选择Microsoft Access as the Source,然后键入你的.mdb数据库(.mdb文件扩展名)的文件名或通过浏览寻找该文件。& 4在Choose a Destination(选择目标)对话框中,选择Microsoft OLE DB Prov ider for SQL Server,选择数据库,然后单击必要的验证方式。& 5在Specify Table Copy(指定表格复制)或Query(查询)对话框中,单击Copy tables(复制表格)。& 6在Select Source Tables(选择源表格)对话框中,单击Select All(全部选定)。下一步,完成。Transact-SQL语句进行导入导出:1.在SQL SERVER里查询access数据:-- ======================================================SELECT *& FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source=&c:\DB.mdb&;User ID=APassword=')...表名-------------------------------------------------------------------------------------------------2.将access导入SQL server& -- ======================================================在SQL SERVER 里运行:SELECT *INTO newtableFROM OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0',&
'Data Source=&c:\DB.mdb&;User ID=APassword=' )...表名-------------------------------------------------------------------------------------------------3.将SQL SERVER表里的数据插入到Access表中-- ======================================================在SQL SERVER 里运行:insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', & 'Data Source=& c:\DB.mdb&;User ID=APassword=')...表名& (列名1,列名2)select 列名1,列名2
sql表实例:insert into
OPENROWSET('Microsoft.Jet.OLEDB.4.0',&
'C:\db.mdb';'admin';'', Test)& select id,name from TestINSERT INTO OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'c:\trade.mdb'; 'admin'; '', 表名)SELECT *FROM sqltablename-------------------------------------------------------------------------------------------------
------其他回答(10分)---------可能是Access数据库文件的读写权限的问题!建议看一下该盘符文件系统是NTFS还是FAT/FAT32?如果是NTFS的话,然后选中数据库右键开属性-&安全-&用户里的权限是否已经勾选“修改”与“写入”选项-&如果没有的话请选中-&确定!然后试试看看!如果是FAT/FAT32的话,进本上不存在以上问题,但要注意该文件的属性了,看看系统用户是否可以操作该文件。------其他回答(10分)---------没报错,查检你操作的access与你自己查看的access是不是同一个文件。 相关资料:|||||||c#向Access插入数据失败但不报错---很奇怪的现象-MS-SQLServer/疑难问题来源网络,如有侵权请告知,即处理!编程Tags:                &                    

我要回帖

更多关于 数据库 insert 的文章

 

随机推荐