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