如何将INSERT
值放入存储在 SQL Server 中string[]
的值,以便忽略某些值而将存储在 SQL Server 中的值作为表上的默认约束?我需要传递什么(例如 NULL 或其他)才能使用这些默认值?
目前,我在我的代码中添加了所有默认值,并且它变得越来越庞大。
下面是我的代码:
if (value == "") value = "0";
string insert = "INSERT INTO " + table + " (" + columns + ") VALUES (" + atColumns + ")";
using (SqlConnection connect = new SqlConnection(connection))
{
using (SqlCommand command = new SqlCommand(insert, connect))
{
//adds values to corresponding parameters
for (int i = 0; i < table_cols.Length; i++)
{
command.Parameters.AddWithValue("@" + table_cols[i], table_vals[i]);
}
foreach (SqlParameter Parameter in command.Parameters)
{
if (Convert.ToString(Parameter.Value) == "")
{
Parameter.Value = DBNull.Value;
}
}
connect.Open();
command.ExecuteNonQuery();
response = "Success";
return response;
如果一个特定Parameter.Value
的不是 null 并且 SQL Server 设置了默认值,则此代码不适用于 null。
在 SQL Server 中,这是通过省略插入语句中的值来处理的(这种省略会触发插入表的默认值,而提供 null 会产生错误)。