将 Where 子句添加到 OleDbCommand
Adding a Where Clause to a OleDbCommand
我正在尝试向以下代码行添加一个 where 子句。
这是因为我从下拉组合框中获取数据table。现在我想过滤 table 用户名,这样只有用户才能看到他们的记录。
我需要有关如何将 where 子句写入此代码的帮助。
如果您需要更多信息,我很乐意添加。
感谢您的帮助。
OleDbCommand cmd = new OleDbCommand(String.Concat("Select * From ", comboBox1.Text), con);
评论后
我添加了 sql 注入保护。
OleDbCommand cmd = new OleDbCommand(String.Concat("Select * From
@Companydetails where Research_ID = @Researcher_ID"), con);
cmd.Parameters.AddWithValue("@Companydetails", comboBox1.Text);
cmd.Parameters.AddWithValue("@Researcher_ID", usernumber_lab.Text);
但现在它给我一个错误提示:
Additional information: Syntax error in query. Incomplete query clause.
我还需要添加其他内容来完成此查询吗?
你可以让你的 sql 语句更长:
OleDbCommand cmd = new OleDbCommand(String.Concat("Select * From table Where something = something", comboBox1.Text), con);
您不必使用多行或任何东西。这仅在某些数据库管理器中需要,但在 c# sql 语句中不需要。
如果你愿意
OleDbCommand cmd = new OleDbCommand(String.Format("Select * From {0} WHERE username='{1}'", comboBox1.Text,username.Text), con);
你可以试试下面的代码
OleDbCommand cmd = new OleDbCommand(string.Format(
"SELECT * FROM {0} WHERE Username = '{1}'",
comboBox1.Text, userName), con);
我会按如下方式进行;
string query = "Select * from MyTable Where username = @username";
using (OleDbCommand cmd = new OleDbCommand(query, con))
{
cmd.Parameters.Add("@username", OleDbType.VarChar).Value = comboBox1.Text;
}
这样对象会自动处理,你也不会受到 Sql 注入
请试试这个
string sql = String.format("Select * From {0} where id = {1}", comboBox1.Text, id);
OleDbCommand cmd = new OleDbCommand(sql,con);
我正在尝试向以下代码行添加一个 where 子句。
这是因为我从下拉组合框中获取数据table。现在我想过滤 table 用户名,这样只有用户才能看到他们的记录。
我需要有关如何将 where 子句写入此代码的帮助。
如果您需要更多信息,我很乐意添加。
感谢您的帮助。
OleDbCommand cmd = new OleDbCommand(String.Concat("Select * From ", comboBox1.Text), con);
评论后
我添加了 sql 注入保护。
OleDbCommand cmd = new OleDbCommand(String.Concat("Select * From
@Companydetails where Research_ID = @Researcher_ID"), con);
cmd.Parameters.AddWithValue("@Companydetails", comboBox1.Text);
cmd.Parameters.AddWithValue("@Researcher_ID", usernumber_lab.Text);
但现在它给我一个错误提示:
Additional information: Syntax error in query. Incomplete query clause.
我还需要添加其他内容来完成此查询吗?
你可以让你的 sql 语句更长:
OleDbCommand cmd = new OleDbCommand(String.Concat("Select * From table Where something = something", comboBox1.Text), con);
您不必使用多行或任何东西。这仅在某些数据库管理器中需要,但在 c# sql 语句中不需要。
如果你愿意
OleDbCommand cmd = new OleDbCommand(String.Format("Select * From {0} WHERE username='{1}'", comboBox1.Text,username.Text), con);
你可以试试下面的代码
OleDbCommand cmd = new OleDbCommand(string.Format(
"SELECT * FROM {0} WHERE Username = '{1}'",
comboBox1.Text, userName), con);
我会按如下方式进行;
string query = "Select * from MyTable Where username = @username";
using (OleDbCommand cmd = new OleDbCommand(query, con))
{
cmd.Parameters.Add("@username", OleDbType.VarChar).Value = comboBox1.Text;
}
这样对象会自动处理,你也不会受到 Sql 注入
请试试这个
string sql = String.format("Select * From {0} where id = {1}", comboBox1.Text, id);
OleDbCommand cmd = new OleDbCommand(sql,con);