OleDbCommand

来源:百度知道 编辑:UC知道 时间:2024/07/07 04:01:54
ACCESS数据库
代码如下:
//调用newBookId函数: 为图书编号,规则用 ISBN_number
string bookId = newBookId(txtISBN.Text);
//构造插入图书信息的Sql语句,注意中间的时间型数据
string sql = String.Format("INSERT INTO BOOKINFO(BookId,ISBN,BookName,Author,Publisher,Price,BookType,Date,Status)VALUES('{0}','{1}','{2}','{3}','{4}',{5},'{6}',#{7}#,'{8}')",
bookId, txtISBN.Text, txtBookName.Text, txtAuthor.Text,
txtPublisher.Text, txtPrice.Text, cbBookType.Text,
txtBuyDate.Text, txtStatus.Text);
conn.Open();
OleDbCommand cmd = new OleDbCommand(sql, conn);
cmd.ExecuteNonQuery(); //执行Command
conn.Close();
MessageBox.Show("入库操作成功,图书编号:" + bookId);
错误如下:
尝试删除BookId,但无效
#{7}#是用来存放日期的,这里是没有错的
错误是:
未处理的OleDbCommand
INSERT INTO语句的

BookId如是主键不写
顺便问下你第8个参数#{7}#格式杂那么怪,我个人认为拼接错了

去掉BookId试下

BookId是主键,不允许为空,而且不是自动编号,肯定不能不写的。
你的代码运行的时候错误是什么?怎么看不到?
时间格式那里应该加'吧:'#{7}#'

老兄,Sql语言要用标准格式,其中日期的格式和字符串的一样都要用''
也就是说你把#{7}#改成'{7}'

BookId 如果是主键 就不要写进去

#{7}#