使用变量从数据库中读取特定行
Read a specific row from database using a variable
我无法从数据库中读取特定行。
我有一个整数 ni
,我只想从 SQL 服务器数据库中读取这一 ni
行(如果 ni = 3 我需要读取第三行)。
private void intrebarea(int ni)
{
con.Open();
SqlCommand cmd = new SqlCommand("Select * from tbl", con);
SqlDataReader rdr = cmd.ExecuteReader();
rdr.Read();
}
我认为可以使用
SqlCommand cmd = new SqlCommand("Select * from tbl WHERE id=ni", con);
但显然不行。
有什么想法吗?
如果我理解正确,你应该使用:
SqlCommand cmd = new SqlCommand(string.Format("Select * from tbl where id={0}", ni), con);
最好的方法是使用 parameters: your query will be faster 它将避免 SQL 注入。
看看:
private void intrebarea(int ni)
{
con.Open();
SqlCommand cmd = new SqlCommand("Select * from tbl Where Id = @Id", con);
cmd.Parameters.Add(new SqlParameter("@Id", System.Data.SqlDbType.Int)));
cmd.Parameters["@Id"].Value = ni;
SqlDataReader rdr = cmd.ExecuteReader();
rdr.Read();
}
我无法从数据库中读取特定行。
我有一个整数 ni
,我只想从 SQL 服务器数据库中读取这一 ni
行(如果 ni = 3 我需要读取第三行)。
private void intrebarea(int ni)
{
con.Open();
SqlCommand cmd = new SqlCommand("Select * from tbl", con);
SqlDataReader rdr = cmd.ExecuteReader();
rdr.Read();
}
我认为可以使用
SqlCommand cmd = new SqlCommand("Select * from tbl WHERE id=ni", con);
但显然不行。
有什么想法吗?
如果我理解正确,你应该使用:
SqlCommand cmd = new SqlCommand(string.Format("Select * from tbl where id={0}", ni), con);
最好的方法是使用 parameters: your query will be faster 它将避免 SQL 注入。
看看:
private void intrebarea(int ni)
{
con.Open();
SqlCommand cmd = new SqlCommand("Select * from tbl Where Id = @Id", con);
cmd.Parameters.Add(new SqlParameter("@Id", System.Data.SqlDbType.Int)));
cmd.Parameters["@Id"].Value = ni;
SqlDataReader rdr = cmd.ExecuteReader();
rdr.Read();
}