我有一个通用的DAL查询,它无法插入日期。但现在我想编辑它,但我无法找到如何插入它。 我尝试了字符串,Convert(),Format()..任何东西,但我似乎无法找到如何做到这一点。 它也必须是通用格式(这是DD / MM / YYYY HH:MM:SS(24h))但我似乎无法找到正确的方法。
public static void AddRow(string TableName, object[] values)
{
DataTable dt = OleDbhelper.fill("SELECT TOP 1 * FROM " + TableName);
if (dt.Columns.Count - 1 == values.Length)
{
string sql = "INSERT INTO " + TableName + " (";
for (int i = 1; i < dt.Columns.Count; i++)
{
sql += "[" + dt.Columns[i].ColumnName + "]";
if (i != dt.Columns.Count - 1)
sql += ",";
else
sql += ") ";
}
sql += "VALUES (";
for (int i = 0; i < values.Length; i++)
{
if (dt.Columns[i + 1].DataType.ToString() == "System.String")
sql += "'" + values[i].ToString() + "'";
else
if (dt.Columns[i + 1].DataType.ToString() == "System.DateTime")
sql += "CONVERT(" + values[i] + "'yyyy-mm-dd hh:mi:ss(24h)'"; // This part
else
sql += values[i].ToString();
if (i != dt.Columns.Count - 2)
sql += ",";
else
sql += ") ";
}
OleDbhelper.Execute(sql);
}
}
任何想法?
答案 0 :(得分:1)
如果这是Access,请使用:
sql += values[i].ToString("'#'yyyy'/'MM'/'dd hh':'mm':'ss'#'");