选择First table data并将其传递给int值并将其打印在第二个表中?错误

时间:2013-07-05 10:30:15

标签: c# asp.net sql

我想从一个表中选择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);

2 个答案:

答案 0 :(得分:1)

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

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

int mId = int.Parse(id);

除此之外,请尝试使用TryParse,以便更安全。

还可以在paramerterised queries语句中使用SELECT来阻止SQL Injection

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

答案 1 :(得分:0)

您不自己创建DataReaders对象。而是通过调用Command类的ExecuteReader方法获得对DataReader对象的引用。

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