使用变量从数据库中读取特定行

时间:2015-08-30 13:17:03

标签: c# database variables row

我在阅读数据库中的特定行时遇到了麻烦。

我有一个整数ni,我想从SQL Server数据库中只读取这个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);

但很明显它不起作用。

请问任何想法?

2 个答案:

答案 0 :(得分:2)

最好的方法是使用parameters:您的查询将是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();
}

答案 1 :(得分:0)

如果我理解你,你应该使用:

SqlCommand cmd = new SqlCommand(string.Format("Select * from tbl where id={0}", ni), con);