我有一个包含日期的表格,以及关于该日期的不同数据,如下所示。为什么我的tableadaptor在我的日期列上强制强制转换为字符串
WKDWKDDATE8 WKDDAYNM WKDAGENO WKDDAYNO WKDDATE6 WEEKNO WEEKRANGE AWEEK
2019-05-15 WEDNESDAY 43580 3 AJ0515 384 05/12 - 05/18 NULL
2019-05-16 THURSDAY 43581 4 AJ0516 384 05/12 - 05/18 NULL
和继承人什么我的表看起来像
CREATE TABLE [dbo].[WKD](
[WKDDATE8] [date] NOT NULL,
[WKDDAYNM] [varchar](10) NOT NULL,
[WKDAGENO] [int] NULL,
[WKDDAYNO] [int] NULL,
[WKDDATE6] [varchar](6) NOT NULL,
[WEEKNO] [int] NULL,
[WEEKRANGE] [varchar](20) NULL,
[AWEEK] [varchar](1) NULL,
,你可以看到我的WKDDATE8
字段是Date
。 在我的C#应用程序中,即时通讯使用tableadaptors
通过WKDDATE8使用SELECT * FROM WKD WHERE WKDDATE8 = @WKDDATE8
来查询此表,但由于某种原因,我的表需要字符串http://imgur.com/a/cO5FA。
现在,这是它的地方。我可以手动将设计器从字符串更改为datetime并运行,它工作正常,但后来我再次运行它,并且由于查询想要一个字符串,但我得到一个构建错误,但是,如果我让它作为一个字符串,我得到明显的cannot convert from 'System.DateTime' to 'string'
。
我完全傻眼了,失去了为什么我的程序想要一个字符串。 E:这是导致我问题的代码。我没有写这个代码,它是生成的。改变是毫无意义的,因为它会改变回到第二内建,我可以看到它铸造我列一个字符串时,它真的不应该
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
[global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")]
[global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, false)]
public virtual CACTUSDataSet.WKDDataTable GetDataByWKD8(string WKDDATE8) {
this.Adapter.SelectCommand = this.CommandCollection[1];
if ((WKDDATE8 == null)) {
throw new global::System.ArgumentNullException("WKDDATE8");
}
else {
this.Adapter.SelectCommand.Parameters[0].Value = ((string)(WKDDATE8));
}
CACTUSDataSet.WKDDataTable dataTable = new CACTUSDataSet.WKDDataTable();
this.Adapter.Fill(dataTable);
return dataTable;
}
哪里是源代码? – Drew
确保您的TableAdaptor中的列已设置为“DateTime”类型。如果您使用的是可视化编辑器,只需单击列名并在属性窗口中应该有一个类型选项。 –
@BenAbraham它被设置为'System.DateTime'因为它应该是 – Multinerd