我有下面的代码,它对一个database.If执行一个简单的SELECT查询--我通过" group“字符串传递整个查询,如果我试图连接字符串(只发送组ID),则查询是OK.But,因为我得到了”查询表达式'ID='group_data‘中的语法错误“-note the three’
我在MSDN上找到了一个高峰,但是我找不到任何与它相关的东西。
public void auth_st(string group)
{
conexiuneBD.Open();
DataSet ds = new DataSet();
OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT Notif FROM teams WHERE ID='"+group+"'", conexiuneBD);
adapter.Fill(ds);
conexiuneBD.Close();
DataTable dt = ds.Tables[0];
foreach (DataRow dr in dt.Rows)
{
listBoxCerer.Items.Add(dr["Notif"].ToString());
}
}任何帮助实际上都是appreciated.Should,我使用命令来代替?
发布于 2014-06-16 07:42:09
字符串连接是非常糟糕,您应该以这种方式使用OleDB参数:
public void auth_st(string group)
{
conexiuneBD.Open();
DataSet ds = new DataSet();
OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT Notif FROM teams WHERE ID=?", conexiuneBD);
adapter.SelectCommand.Parameters.AddWithValue("p1", group);
adapter.Fill(ds);
conexiuneBD.Close();
DataTable dt = ds.Tables[0];
foreach (DataRow dr in dt.Rows)
{
listBoxCerer.Items.Add(dr["Notif"].ToString());
}
}发布于 2014-06-16 06:48:27
public void auth_st(string group)
{
string query="SELECT Notif FROM teams WHERE ID='{0}'";
conexiuneBD.Open();
DataSet ds = new DataSet();
OleDbDataAdapter adapter = new OleDbDataAdapter(string.Format(query,group), conexiuneBD);
adapter.Fill(ds);
conexiuneBD.Close();
DataTable dt = ds.Tables[0];
foreach (DataRow dr in dt.Rows)
{
listBoxCerer.Items.Add(dr["Notif"].ToString());
}
}https://stackoverflow.com/questions/24237944
复制相似问题