SqlDataAdapter “int”和“datetime”的参数大小
本文关键字:参数 int SqlDataAdapter datetime | 更新日期: 2023-09-27 18:07:02
创建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");
添加以回答有关数据来源的问题:(在帖子的原始部分中,我将"描述"重命名为"东西"(
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;
}
Add
存在不带大小的重载,因此并不总是必需的。
对于整数和DATETIME
字段,由于这些字段具有固定大小,因此不需要这样做。
您还应该看看AddWithValue
:
AddWithValue
取代了采用String
和Object
的SqlParameterCollection.Add
方法。
大小无关紧要!
"对于固定长度的数据类型,Size 的值将被忽略。它可以检索以供参考,并返回提供程序在将参数值传输到服务器时使用的最大字节数。
请参阅本文: http://msdn.microsoft.com/en-us/library/system.data.common.dbparameter.size%28v=vs.100%29.aspx