mac*_*007 5 .net c# oledb ms-access select
我有这个小问题.我想将select语句的结果值检索到字符串变量中.像这样
OleDbCommand cmd1 = new OleDbCommand();
cmd1.Connection = GetConnection();
cmd1.CommandText = "SELECT treatment FROM appointment WHERE patientid = " + text;
cmd1.ExecuteNonQuery();
Run Code Online (Sandbox Code Playgroud)
我希望将选定的处理值放入字符串变量中.我怎样才能做到这一点.谢谢
Son*_*nül 20
使用ExecuteReader()与否ExecuteNonQuery().ExecuteNonQuery()仅返回受影响的行数.
try
{
SqlDataReader dr = cmd1.ExecuteReader();
}
catch (SqlException oError)
{
}
while(dr.Read())
{
string treatment = dr[0].ToString();
}
Run Code Online (Sandbox Code Playgroud)
或者更好的是,使用一个using声明.
using(SqlDataReader dr = cmd1.ExecuteReader())
{
while(dr.Read())
{
string treatment = dr[0].ToString();
}
}
Run Code Online (Sandbox Code Playgroud)
但是如果SqlCommand只返回1列,则可以使用该ExecuteScalar()方法.它返回第一行的第一列,如下所示: -
cmd.CommandText = "SELECT treatment FROM appointment WHERE patientid = " + text;
string str = Convert.ToString(cmd.ExecuteScalar());
Run Code Online (Sandbox Code Playgroud)
您也可以打开SQL Injection的代码.始终使用参数化查询.杰夫有一篇很酷的博客文章叫做给我参数化SQL,或者给我死亡.请仔细阅读.另请阅读DotNetPerl SqlParameter文章.在您处理查询时,SQL注入非常重要.
| 归档时间: |
|
| 查看次数: |
83838 次 |
| 最近记录: |