选择第一个表数据并将其传递给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 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