好的,非常感谢所有帮助我的人,但现在我还有另外一个问题,我希望这个说法也正确
if (byNametextBox.Text != null && byBuildingtextBox.Text !=null && seTextBoxPublic1.Text == null)
{
da = new SqlDataAdapter("SELECT * FROM Students WHERE name='" + byNametextBox.Text +"and [buil-id]='"+byBuildingtextBox.Text+ "'", MyConn);
}
我想从同一个表中选择两个条件 请
答案 0 :(得分:2)
请使用参数!如果由于某种原因你反对他们,这应该有效:
string strStatement = String.Format("SELECT * FROM Students WHERE [name] = '{0}' AND [buil-id] = '{1}'", byNametextBox.Text, byBuildingtextBox.Text);
da = new SqlDataAdapter(strStatement, MyConn);
答案 1 :(得分:1)
如果在SQL查询中使用参数,则更安全。
答案 2 :(得分:1)
我想你应该用2个参数创建一个SqlCommand。 您在此处发布的代码对SQL注入攻击不安全。
请遵循:
答案 3 :(得分:1)
要回答您的问题,您的代码会创建SQL:
SELECT * FROM Students WHERE name='NAMEand [buil-id]='ID'
应该是
SELECT * FROM Students WHERE name='NAME' and [buil-id]='ID'
答案 4 :(得分:0)
使用parameterized
查询来阻止sql注入,如果你想填充数据表,还可以使用一些额外的代码。
SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM Students WHERE name = @byName and [buil-id]= @byBuilding " , MyConn)
DataTable dt= new DataTable();
da.SelectCommand.Parameters.AddWithValue("@byName", byNametextBox.Text);
da.SelectCommand.Parameters.AddWithValue("@byBuilding", byBuildingtextBox.Text);
da.Fill(dt);