我一直无法更新数据库中的表格,该表格托管在Azure上。
我一直遇到某个SQL语句的问题。
这里是:我根据给出的equipmentId读出了有关工具的几列信息。 将显示文本框,其中包含当前数据库中的所有信息。如果用户选择更改任何内容,则只删除其中一个文本框中的内容,例如注册号,输入其他内容,然后点击提交按钮。
提交后,文本框中的所有文本都应该发送到数据库中,无论它们是否已被更改。它只是覆盖了一切。 我可以读出所有内容,因此连接没有问题,但我很难将其重新写入。
以下是代码:
datePurchase.Text是一个字符串,来自wpf datepicker,而不是文本框。 azure上的列是DateTime类型。我不知道他们是否能够匹配日期,因为这是错误消息说出错的地方。我在挪威,所以我的日期看起来像这个02.03.2015。
答案 0 :(得分:0)
正如@codingbiz所说,你错过了一些报价。
它说日期的唯一原因是问题是因为其他的可能是有效的SQL,但它们不是。 用引号括起日期,你会看到新的错误。 Tektroniks,TEST,示波器和日期需要用单引号括起来。即'TEST'。
如果您不熟悉SQL,您可能需要研究一些内容来抽象它,比如实体框架。至少我会拿一本关于SQL的书,如果你将不得不使用它。
此外,我发现当出现SQL问题时,最好的办法是接受您发送的命令并尝试直接在SSMS中执行它。
答案 1 :(得分:-1)
如果这是SQL Server尝试在单引号中从“dd.MM.yyyy”转换为“yy-MM-dd”。 我建议首先解析为DateTime以验证然后打印到适当的DB日期格式。请参阅DateTime.Parse()。
例如:
var date = DateTime.Parse(datePurchase.Text);
var purchaseDate = String.Format("'{0}'", theDate.ToString("yyyy-MM-dd"));