SqlDataAdapter`int`和`datetime`的参数大小

时间:2013-04-02 19:20:47

标签: c# sql-server sqldataadapter

创建SqlDataAdapter并添加参数时,IntDateTime类型的大小应该是多少? 是否需要size

adapter = new SqlDataAdapter();
adapter.InsertCommand = new SqlCommand(
    "insert into MyTable (id, created, stuff) values (@id, @created, @stuff)",
    connection);
adapter.InsertCommand.Parameters.Add("@id", SqlDbType.Int, ?????, "id");
adapter.InsertCommand.Parameters.Add("@created", SqlDbType.DateTime, ????, "created");
adapter.InsertCommand.Parameters.Add("@stuff", SqlDbType.VarChar, 250, "stuff");

添加回答有关数据来源的问题:(在帖子的原始部分,我将“描述”重命名为“stuff”)

    public static DataSet dumpETEvents()
    {
        DataSet ret = new DataSet();
        SQLiteDataAdapter adapter = new SQLiteDataAdapter();
        adapter.SelectCommand = new SQLiteCommand(
            "select id, created, description from ETEvents",
            DbDatabase.connection);
        adapter.MissingSchemaAction = MissingSchemaAction.Add;
        adapter.AcceptChangesDuringFill = false;
        adapter.Fill(ret);
        return ret;
    }

2 个答案:

答案 0 :(得分:2)

Add的重载不会占用大小,因此 总是需要。

对于整数和DATETIME字段,由于这些字段具有固定大小,因此不需要这样做。

您还应该查看AddWithValue

  

AddWithValue取代了SqlParameterCollection.AddString的{​​{1}}方法。

答案 1 :(得分:0)

尺寸无关紧要!

“对于固定长度数据类型,将忽略Size的值。可以检索它以供参考,并返回提供程序在将参数值传输到服务器时使用的最大字节数。”

请参阅此文章:http://msdn.microsoft.com/en-us/library/system.data.common.dbparameter.size%28v=vs.100%29.aspx