创建SqlDataAdapter
并添加参数时,Int
和DateTime
类型的大小应该是多少?
是否需要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;
}
答案 0 :(得分:2)
Add
的重载不会占用大小,因此 总是需要。
对于整数和DATETIME
字段,由于这些字段具有固定大小,因此不需要这样做。
您还应该查看AddWithValue
:
AddWithValue
取代了SqlParameterCollection.Add
和String
的{{1}}方法。
答案 1 :(得分:0)
尺寸无关紧要!
“对于固定长度数据类型,将忽略Size的值。可以检索它以供参考,并返回提供程序在将参数值传输到服务器时使用的最大字节数。”
请参阅此文章:http://msdn.microsoft.com/en-us/library/system.data.common.dbparameter.size%28v=vs.100%29.aspx