我试图从SQL Server表中将记录插入到Access表中。尝试将NULL传递给时间戳字段时出错
对于SQL Server表中的每一行,我正在检查一个条件,如果时间戳字段为NULL,则将NULL也插入到相应的Access字段中。
这里粘贴一小段代码:
foreach (DataRow dr in dra) //Each datarow in SQL Server table
{
OleDbCommand accessCmdUpdate = new OleDbCommand("update xxx set [email protected],[email protected],[email protected] where [email protected]", AccessConnection);
accessCmdUpdate.Parameters.Add(new OleDbParameter("@0", dr[0].ToString()));
accessCmdUpdate.Parameters.Add(new OleDbParameter("@1", dr[1].ToString()));
accessCmdUpdate.Parameters.Add(new OleDbParameter("@2", convertedText));
if (dr[3] != System.DBNull.Value)
accessCmdUpdate.Parameters.Add(new OleDbParameter("@3",OleDbType.DBTimeStamp,100,ParameterDirection.Input,true,(byte)(100),(byte)(0),"xxxdatetime",DataRowVersion.Current,Convert.ToDateTime(dr[3])));
else
accessCmdUpdate.Parameters.Add(new OleDbParameter("@3", OleDbType.DBTimeStamp, 100, ParameterDirection.Input, true, (byte)(100), (byte)(0), "xxxdatetime", DataRowVersion.Current, DBNull.Value));
accessCmdUpdate.ExecuteNonQuery();
}
我试图插入DbNull.Value为@ 3(DBTIMESTAMP)参数。但它不起作用。我收到以下错误:
System.Data.OleDb.OleDbException:未给出一个或多个所需参数的值。 正确插入参数@ 0和@ 2。
如何使用OleDbParameter为DBTimeStamp字段传递NULL?
请提交表格的结构。也许这是一个必填字段? – Fischermaen
对于Access和SQL Server表,Tha表结构完全相同。 这不是一个必填字段,但我必须从SQL Server表中传递所有字段值。 – KhD
你可以验证'convertedText'的值吗? –