选择第一个表数据并将其传递给int值,然后在第二个表中打印?错误

本文关键字:然后 第二个 打印 错误 数据 第一个 选择 int | 更新日期: 2023-09-27 18:21:13

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

选择第一个表数据并将其传递给int值,然后在第二个表中打印?错误

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

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

int mId = int.Parse(id);

除此之外,请尝试使用TryParse,这样更安全。

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

请张贴你的代码的其余部分,我会调整我的答案以适应。

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

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

相关文章: