微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将准备好的语句与OleDbDataAdapter配合使用?

如何解决如何将准备好的语句与OleDbDataAdapter配合使用?

我正在编写一个API,该API将在给定某些参数的情况下查询数据库。其中一些参数将由调用应用程序提供(应该是值得信赖的),但其中一些参数将由用户输入提供。

如果我得到的结果很少,我通常会使用OleDbCommand并通过Parameters字段使用准备好的语句,如下所示

string sql = "Select * from [Table1] where Empid = ?";
OleDbCommand cmd = new OleDbCommand(sql,conn);
OleDbParameter tableParam = new OleDbParameter("@fieldvalue",value);
cmd.Parameters.Add(tableParam);
cmd.Prepare();

但是,由于我将获得很多结果(可能是表的全部内容),因此我想使用OleDbDataAdapter填充DataTable以便更方便地处理和返回数据:

DataTable dt = new DataTable();
OleDbDataAdapter da = new OleDbDataAdapter(sql,connstring);
da.Fill(dt);

问题是我不知道如何在OleDbDataAdapter中使用准备好的语句。我该怎么做,或者在使用OleDbDataAdapter时还有另一种方法来保证数据库安全吗?

解决方法

OleDbDataAdapter使用查询文本公开由适配器构建的 SelectCommand 属性(一个OleDbCommand)。您可以使用它来“准备” OleDbDataAdapter使用的命令,并提供命令文本所需的参数。

DataTable dt = new DataTable();
OleDbDataAdapter da = new OleDbDataAdapter(sql,connstring);
da.SelectCommand.Parameters.Add("@fieldvalue",OleDbType.Integer).Value = value;
da.Fill(dt);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。