C# 通过DataGrid删除访问文件行
我目前正在学习删除文件并将其更新到access数据库(mdb)中。 但是我遇到了一个我无法解决的错误 我的数据库由6列组成。目前的相关列为“ID”和“日期”。ID是一个带有自动递增主键的文本字段,日期是一个普通文本字段(dd.MM.yyyy) 我可以通过选择一个ID来删除行。(通过将ID放入文本字段完成选择) 现在我想去掉整个ID,因为我在数据库中并不真正需要它,而是想按实际日期(只存在一次)选择行。 但如果我尝试按日期选择,我会遇到 查询表达式“Date=29.10.201”中的Syntaxerror的编号 我不知道为什么2015会缩短,所以我没有使用“dateTimePicker1.Text”,而是将dateTimePicker值转换为字符串并拆分,然后只返回日期,但它得到了相同的错误 以下是我用于拆分的代码:C# 通过DataGrid删除访问文件行,c#,database,datagrid,C#,Database,Datagrid,我目前正在学习删除文件并将其更新到access数据库(mdb)中。 但是我遇到了一个我无法解决的错误 我的数据库由6列组成。目前的相关列为“ID”和“日期”。ID是一个带有自动递增主键的文本字段,日期是一个普通文本字段(dd.MM.yyyy) 我可以通过选择一个ID来删除行。(通过将ID放入文本字段完成选择) 现在我想去掉整个ID,因为我在数据库中并不真正需要它,而是想按实际日期(只存在一次)选择行。 但如果我尝试按日期选择,我会遇到 查询表达式“Date=29.10.201”中的Syntaxe
string date = dateTimePicker1.Value.ToString().Split(' ')[0];
con.Open();
OleDbCommand command = new OleDbCommand();
command.Command.Text = "delete from " + user + " where Date =" + date + " ";
command.ExecuteNonQuery;
con.Close();
这是我以前用过的代码
command.Command.Text = "delete from " + user + " where Date =" + dateTimePicker1.Text + " ";
提前感谢您的回答。:) 文本日期需要像字符串一样转义,即
。。。其中日期='2015-10-29'
。还要确保SQL命令中的日期格式
调用
ExecuteNonQuery
之前是否检查了command.command.Text
?因此,当使用调试器时,当您跨过此行string date=dateTimePicker1.value.ToString().Split(“”)[0]时,datee
的值是多少代码>还有,为什么不捕获DateTimePicker的值,并将该datetime值转换为没有时间的格式化日期?作为字符串值..将字符串日期更改为以下var date=dateTimePicker1.value.ToSortDateString()代码>或执行此操作var date=dateTimePicker1.Value.ToString(“MM dd yyyy”)代码>@MethodMan谢谢你的回答。如果我给文本框赋值,我会得到实际日期(2015年10月29日,带拆分)。转换后的datetime值(之后由您建议)也会出现同样的错误。很遗憾,请查看该日期值,并询问自己数据库中的日期格式。。是yyyy-MM-dd格式,dd-MM-yyyy您试图更新的字段的数据类型是什么。。您的命令应该是以下command.command.Text=“从用户删除,其中Date=“+dateTimePicker1.Value.ToString(“MM-dd-yyyy”)
如果您获得的日期为2015年10月29日
,则数据库中存储的日期是否包含
。。?如果没有,则使用.ToString()
方法末尾的replace函数,如.ToString(“MM dd yyyy”)。replace(“.”,“-”)代码>谢谢你的回答。你是说数据库中日期的格式吗?(保存为textfield)或c#?