求C#向ACCESS数据库插入数据的SQL语句 急急急!!!!那位大虾帮下忙

时间:2022-07-09 16:53:09
各位高手是不是拼SQL语句的字符串错了啊 , ,
我想向access的reader表中插入一条记录
表reader的结构为 :
readerID(主键) 文本     
readerName     文本
readerPassword 文本
readerPhone    文本
readerStartTime 时间/日期  只有这个允许空

主要的代码如下:
using SDO = System.Data.OleDb;

string sConncet = string.Format("Provider={0};Data Source={1}{2}", "Microsoft.Jet.OLEDB.4.0;", System.AppDomain.CurrentDomain.BaseDirectory, "Library.mdb");

SDO.OleDbConnection dbConn = null;         
dbConn = new SDO.OleDbConnection(sConncet);
dbConn.Open();   
SDO.OleDbCommand dbCmd;
string sql;
public void createCmd(string table, string rID, string rname, string rpwd, string rphone)
{            
sql = "insert into" + " " + table + " " + "values" + "(" + "'" + rID + "'" + "," + "'" + rname + "'" + "," + "'" + rpwd + "'" + "," + "'" + rphone + "'" + "," + "'" + DateTime.Now + "'" + ")" + " " + "go";            
 } 
dbCmd = new SDO.OleDbCommand(sql, dbConn);
dbConn.Close();
     

21 个解决方案

#1


怎么没有回复啊,我的提问写的有问题吗

#2


 + "'" + rID + "'" + 改为 "+ rID +"
 

#3



sql = "insert into " + table + "(readerID,readerName ,readerPassword ,readerPhone ,readerStartTime ) values('" + rID + "','" + rname + "','" + rpwd + "','" + rphone + "','" + DateTime.Now.ToString() + "')";

#4


引用 3 楼 bdmh 的回复:
SQL code

sql = "insert into " + table + "(readerID,readerName ,readerPassword ,readerPhone ,readerStartTime ) values('" + rID + "','" + rname + "','" + rpwd + "','" + rphone + "','" + DateTime.Now.……


+1

#5


sql=String.Fomat("insert into {0} values({1},'{2},...')",i.toString(),...,DateTime.Now.toString());
你看看你的DateTime.Now,恩,你懂的

#6


1,通过调试,你取出 sql语句
2,将sql语句拿到access中执行,如果执行不成功,你看一眼应该会找到错误的原因

#7


access 可以直接执行sql 语句吗,行的话,执行的页面在那啊

#8


你的sql语句打印出来, 很多地方没空格,你自己注意一下,还有单引号问题
你的语句肯定是类似这样的
insert into表values()...
这样肯定不行的。把空格加上,再看一下单引号的问题,就应该可以了

#9


Lz最好在用[]把字段和表名扩起来

#10


sql = "insert into " + table + "(readerID,readerName ,readerPassword ,readerPhone ,readerStartTime ) values('" + rID + "','" + rname + "','" + rpwd + "','" + rphone + "','" + DateTime.Now)

#11


引用楼主 typ0520 的回复:
各位高手是不是拼SQL语句的字符串错了啊 , ,
我想向access的reader表中插入一条记录
表reader的结构为 :
readerID(主键) 文本     
readerName     文本
readerPassword 文本
readerPhone    文本
readerStartTime 时间/日期  只有这个允许空

主要的代码如下:
using SDO ……

你的这个dbCmd.ExecuteNonQuery();呢
至于sql语句有没有问题自己调试拿到查询分析器执行一下不就完了

#12



string sql="INSERT INTO" +'"+table+"'+"VALUES"('"+RID+"','"+NAME+"','"+rpwd+"','"+rphone+"')";
public void createCmd(string table, string rID, string rname, string rpwd, string rphone)
{  
sql="INSERT INTO" +'"+table+"'+"VALUES"('"+RID+"','"+NAME+"','"+rpwd+"','"+rphone+"')";
//为什么你写的那么复杂呢 ?
 } 
dbCmd = new SDO.OleDbCommand(sql, dbConn);
dbConn.Close();

#13


dbCmd的执行没有啊,execute的语句呢?除了时间,其他字段不为空,那么给每个参数加上判空处理IsNullorEmpty()

#14


1、你的“readerID”作为主键,是自增的吗?
2、readerID 类型是什么,如果是整型的,就不需要加单引号了。
3、你怎么不把错误信息也贴出来(try catch一下)

#15


insert into 表名(A,B,C...)VALUES('"+这里写你要添加的对象+"',"+这里是int类型的+",‘“+这里是字符串类型的+"’)

#16


执行语句在哪?

#17


access 当然是可以直接执行sql 语句的
   在ACCESS数据库中  点击查询 -----在设计视图中创建查询--------然后根据自己需要选择需要查询的表或者单击右键选择 SQL视图   就可以执行SQL语句了

#18


引用 6 楼 keenweiwei 的回复:
1,通过调试,你取出 sql语句
2,将sql语句拿到access中执行,如果执行不成功,你看一眼应该会找到错误的原因
一般开发时,可能情况下都输出下sql语句,至少可以一眼看出sql语句有没问题

#19


access中 时间外面用“#”,我之前吃过亏。

#20


引用 13 楼 jessie_j_wang 的回复:
dbCmd的执行没有啊,execute的语句呢?除了时间,其他字段不为空,那么给每个参数加上判空处理IsNullorEmpty()


晕  没写这个语句  谢谢啊

#21


把语句放在 数据库中调试成功了  嘻嘻

#1


怎么没有回复啊,我的提问写的有问题吗

#2


 + "'" + rID + "'" + 改为 "+ rID +"
 

#3



sql = "insert into " + table + "(readerID,readerName ,readerPassword ,readerPhone ,readerStartTime ) values('" + rID + "','" + rname + "','" + rpwd + "','" + rphone + "','" + DateTime.Now.ToString() + "')";

#4


引用 3 楼 bdmh 的回复:
SQL code

sql = "insert into " + table + "(readerID,readerName ,readerPassword ,readerPhone ,readerStartTime ) values('" + rID + "','" + rname + "','" + rpwd + "','" + rphone + "','" + DateTime.Now.……


+1

#5


sql=String.Fomat("insert into {0} values({1},'{2},...')",i.toString(),...,DateTime.Now.toString());
你看看你的DateTime.Now,恩,你懂的

#6


1,通过调试,你取出 sql语句
2,将sql语句拿到access中执行,如果执行不成功,你看一眼应该会找到错误的原因

#7


access 可以直接执行sql 语句吗,行的话,执行的页面在那啊

#8


你的sql语句打印出来, 很多地方没空格,你自己注意一下,还有单引号问题
你的语句肯定是类似这样的
insert into表values()...
这样肯定不行的。把空格加上,再看一下单引号的问题,就应该可以了

#9


Lz最好在用[]把字段和表名扩起来

#10


sql = "insert into " + table + "(readerID,readerName ,readerPassword ,readerPhone ,readerStartTime ) values('" + rID + "','" + rname + "','" + rpwd + "','" + rphone + "','" + DateTime.Now)

#11


引用楼主 typ0520 的回复:
各位高手是不是拼SQL语句的字符串错了啊 , ,
我想向access的reader表中插入一条记录
表reader的结构为 :
readerID(主键) 文本     
readerName     文本
readerPassword 文本
readerPhone    文本
readerStartTime 时间/日期  只有这个允许空

主要的代码如下:
using SDO ……

你的这个dbCmd.ExecuteNonQuery();呢
至于sql语句有没有问题自己调试拿到查询分析器执行一下不就完了

#12



string sql="INSERT INTO" +'"+table+"'+"VALUES"('"+RID+"','"+NAME+"','"+rpwd+"','"+rphone+"')";
public void createCmd(string table, string rID, string rname, string rpwd, string rphone)
{  
sql="INSERT INTO" +'"+table+"'+"VALUES"('"+RID+"','"+NAME+"','"+rpwd+"','"+rphone+"')";
//为什么你写的那么复杂呢 ?
 } 
dbCmd = new SDO.OleDbCommand(sql, dbConn);
dbConn.Close();

#13


dbCmd的执行没有啊,execute的语句呢?除了时间,其他字段不为空,那么给每个参数加上判空处理IsNullorEmpty()

#14


1、你的“readerID”作为主键,是自增的吗?
2、readerID 类型是什么,如果是整型的,就不需要加单引号了。
3、你怎么不把错误信息也贴出来(try catch一下)

#15


insert into 表名(A,B,C...)VALUES('"+这里写你要添加的对象+"',"+这里是int类型的+",‘“+这里是字符串类型的+"’)

#16


执行语句在哪?

#17


access 当然是可以直接执行sql 语句的
   在ACCESS数据库中  点击查询 -----在设计视图中创建查询--------然后根据自己需要选择需要查询的表或者单击右键选择 SQL视图   就可以执行SQL语句了

#18


引用 6 楼 keenweiwei 的回复:
1,通过调试,你取出 sql语句
2,将sql语句拿到access中执行,如果执行不成功,你看一眼应该会找到错误的原因
一般开发时,可能情况下都输出下sql语句,至少可以一眼看出sql语句有没问题

#19


access中 时间外面用“#”,我之前吃过亏。

#20


引用 13 楼 jessie_j_wang 的回复:
dbCmd的执行没有啊,execute的语句呢?除了时间,其他字段不为空,那么给每个参数加上判空处理IsNullorEmpty()


晕  没写这个语句  谢谢啊

#21


把语句放在 数据库中调试成功了  嘻嘻