string sql1="select * from @para2 where @para1='@para3'";
OleDbCommand dbcmd=new OleDbCommand(sql1,dbconn); OleDbParameter p1 =new OleDbParameter("@para1",OleDbType.VarChar,50);
p1.Value=bl1;
dbcmd.Parameters.Add(p1); OleDbParameter p2 =new OleDbParameter("@para2",OleDbType.VarChar,50);
p2.Value=bl2;
dbcmd.Parameters.Add(p2); OleDbParameter p3 =new OleDbParameter("@para3",OleDbType.VarChar,50);
p2.Value=TextBox1.Text;
dbcmd.Parameters.Add(p3);
执行时会说我的查询语句有问题,不知道我哪儿是不是搞错了?如果我不使用三个参数直接用字符代替就是正常的,其中的bl1,bl2,TextBox1.Text都定义了的
OleDbCommand dbcmd=new OleDbCommand(sql1,dbconn); OleDbParameter p1 =new OleDbParameter("@para1",OleDbType.VarChar,50);
p1.Value=bl1;
dbcmd.Parameters.Add(p1); OleDbParameter p2 =new OleDbParameter("@para2",OleDbType.VarChar,50);
p2.Value=bl2;
dbcmd.Parameters.Add(p2); OleDbParameter p3 =new OleDbParameter("@para3",OleDbType.VarChar,50);
p2.Value=TextBox1.Text;
dbcmd.Parameters.Add(p3);
执行时会说我的查询语句有问题,不知道我哪儿是不是搞错了?如果我不使用三个参数直接用字符代替就是正常的,其中的bl1,bl2,TextBox1.Text都定义了的
string sql1= String.Format("select * from {0} where {1} = ?", bl2, bl1);
OleDbCommand dbcmd=new OleDbCommand(sql1,dbconn);
OleDbParameter p =new OleDbParameter("@para3",OleDbType.VarChar,50);
p.Value=TextBox1.Text;
dbcmd.Parameters.Add(p);
....
这个只是手工组成SQL字符串,跟string sql1= "select * from " + bl2 + " where " + bl1 + " = ?", 没什么两样,其中的"?"是为参数设置定位而已