-2

我想id从一个表中选择并将其插入id到另一个表中。首先,我需要读取我的第一个表 id 并将其传递给字符串。然后我需要将该字符串传递给第二个表。

String selQuery = "SELECT Id FROM MapDataImage WHERE Source='" + TextBox1.Text + "';";
{
    int MId = int.TryParse(Id);
    String QueryStr = "INSERT INTO User_Images VALUES (@Image)";
    SqlCommand scmd = new SqlCommand(QueryStr, conn);
    SqlDataReader sqldread = scmd.ExecuteReader();

    //String QueryStr = "UPDATE MapDataImage SET Image = @Image WHERE Source='" + TextBox1.Text + "';";
    //SqlCommand scmd = new SqlCommand(QueryStr, conn);
    scmd.Parameters.Add("@Image", SqlDbType.VarBinary).Value = imgbytes;
    scmd.ExecuteNonQuery();
}

这是正确的吗?

int MId = int.TryParse(Id); //the name id does not exist in current context?

但我想从数据库中检索特定的 id 值

或者

int MId = int.TryParse(@Id);
4

2 回答 2

1
int MId = int.Parse("Id");

永远不会工作。"Id"是字符串文字,它永远不能是整数。我认为您需要指定一个变量

int mId = int.Parse(id);

除此之外,尝试使用TryParse它更安全。

还可以paramerterised queries在您的SELECT声明中使用以防止SQL Injection.

请发布您的其余代码,我将调整我的答案以适应。

于 2013-07-05T10:33:46.357 回答
0

您不会自己创建 DataReaders 对象。相反,您可以通过调用 Command 类的 ExecuteReader 方法来获取对 DataReader 对象的引用。

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executereader.aspx

于 2013-07-05T10:33:59.757 回答