0

创建和添加参数时,大小和类型SqlDataAdapter应该是什么?有没有必要的理由?IntDateTimesize

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");

添加以回答有关数据来源的问题:(在帖子的原始部分,我将“description”重命名为“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;
    }
4

2 回答 2

2

有一些Add不需要大小的重载,所以这并不总是需要的。

对于整数和DATETIME字段,由于它们具有固定大小,因此不需要。

您还应该看看AddWithValue

AddWithValue替换SqlParameterCollection.Add采用 aString和 an的方法Object

于 2013-04-02T19:23:07.033 回答
1

大小无所谓!

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

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

于 2013-04-02T21:04:10.990 回答