InsertCommand.Parameters.Add datetime的size参数

sag*_*y36 2 .net c# ado.net datetime sqlparameter

我需要使用以下语法了解DateTime值的大小参数:

adapter.InsertCommand.Parameters.Add("@deliveryDateAndTime", SqlDbType.DateTime,10,"deliveryDateAndTime");
Run Code Online (Sandbox Code Playgroud)

无法使用以下语法,因为我正在将更新批处理在数据表中。

adapter.InsertCommand.Parameters.Add("@deliveryDateAndTime", SqlDbType.DateTime);
adapter.InsertCommand.Parameters["@deliveryDateAndTime"] = *variable*.value;
Run Code Online (Sandbox Code Playgroud)

以下是我需要使用的代码(为清楚起见,已缩写)。请注意,在adapter.InsertCommand.Parameters.Add("@deliveryDateAndTime", SqlDbType.DateTime,10,"deliveryDateAndTime");语句内部,第一个参数引用对应的SQL参数,第四个参数对应于数据表中该值数据。

DataTable dt = new DataTable();
foreach (FuelDelivery fd in fuelDelivery.FuelDeliveries)
{
    DataRow dr = dt.NewRow();
    dr["deliveryDateAndTime"] = fd.DeliveryDateAndTime;
    dt.Rows.Add(dr);
}

using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["HHSqlConnection"].ToString()))
{
    // Create a SqlDataAdapter.
    SqlDataAdapter adapter = new SqlDataAdapter();

    // Set the INSERT command and parameter.
    adapter.InsertCommand.Parameters.Add("@deliveryDateAndTime", SqlDbType.DateTime,10,"deliveryDateAndTime");
    adapter.InsertCommand.UpdatedRowSource = UpdateRowSource.None;

    // Set the batch size. Zero represents the maximum amt of rows to update at once.
    adapter.UpdateBatchSize = 0;

    // Execute the update.
    int rowsUpdated = adapter.Update(dt);
}
Run Code Online (Sandbox Code Playgroud)

基于此adapter.InsertCommand.Parameters.Add方法的重载,如何设置日期?

D S*_*ley 5

日期时间是根据易于搜索文档8个字节。

请注意,您还可以使用首选的重载并单独设置source列:

adapter.InsertCommand.Parameters.Add("@deliveryDateAndTime", SqlDbType.DateTime)
                                .SourceColumn = "deliveryDateAndTime";
Run Code Online (Sandbox Code Playgroud)