有个表:Info
三个字段:Id int(主键,自动增长),Name Varchar(50),Address Varchar(50)代码里有个查询功能:
public DataSet Search(int id)
{
string searchSql=string.Empty;
DataSet ds=new DataSet();
if(id!=0)
{
searchSql="select * from Info where Id=@Id";
}
using(SqlConnection con=new SqlConnection(cfg.AppSettings["ConnectionString"]))
{
SqlCommand cmd=con.CreateCommand();
cmd.CommandText=searchSql;
cmd.Parameters.Add("@Id",SqlDbType.Int).Value=id;
SqlDataAdapter da=new SqlDataAdapter(searchSql,con);
try
{
con.Open();
da.Fill(ds);//到这步的时候,总是会catch
到,提示{"必须声明变量 '@Id'。" }
}
catch(Exception error)
{
Debug.WriteLine(error.ToString());
}
finally
{
con.Close();
}
return ds;
} }
三个字段:Id int(主键,自动增长),Name Varchar(50),Address Varchar(50)代码里有个查询功能:
public DataSet Search(int id)
{
string searchSql=string.Empty;
DataSet ds=new DataSet();
if(id!=0)
{
searchSql="select * from Info where Id=@Id";
}
using(SqlConnection con=new SqlConnection(cfg.AppSettings["ConnectionString"]))
{
SqlCommand cmd=con.CreateCommand();
cmd.CommandText=searchSql;
cmd.Parameters.Add("@Id",SqlDbType.Int).Value=id;
SqlDataAdapter da=new SqlDataAdapter(searchSql,con);
try
{
con.Open();
da.Fill(ds);//到这步的时候,总是会catch
到,提示{"必须声明变量 '@Id'。" }
}
catch(Exception error)
{
Debug.WriteLine(error.ToString());
}
finally
{
con.Close();
}
return ds;
} }
if(id!=0)
{
searchSql="select * from Info where Id=@Id";
}
using(SqlConnection con=new SqlConnection(cfg.AppSettings["ConnectionString"]))
{
SqlCommand cmd=con.CreateCommand();
cmd.CommandText=searchSql;
cmd.Parameters.Add("@Id",SqlDbType.Int).Value=id;
SqlDataAdapter da=new SqlDataAdapter(searchSql,con);
///////////////////////////////////
完全没有你这样写的
应该是searchSql="select * from Info where Id="+@Id;如果报错的话把@Id转为字符型
{
searchSql="select * from Info where Id='"+id+"'";
}
此处改为
searchSql="select * from Info where Id="+id;
试试
ID是INT类型,还加''干什么?
//改为。。string searchSql=string.Empty;
DataSet ds=new DataSet();
if(id!=0)
{
searchSql="select * from Info where Id='"+ id +"'";
}
using(SqlConnection con=new SqlConnection(cfg.AppSettings["ConnectionString"]))
{
SqlCommand cmd=con.CreateCommand();
cmd.CommandText=searchSql;
SqlDataAdapter da=new SqlDataAdapter(searchSql,con);
继续up
SqlDataAdapter da=new SqlDataAdapter(searchSql,con);
改称
SqlDataAdapter da=new SqlDataAdapter(cmd);
即可。