C# 无法使用带c的参数化查询显示数据#
我正在尝试使用参数化查询显示数据C# 无法使用带c的参数化查询显示数据#,c#,sql,ado.net,sql-parametrized-query,C#,Sql,Ado.net,Sql Parametrized Query,我正在尝试使用参数化查询显示数据 try { SqlConnection xconn = new SqlConnection(); xconn.ConnectionString = @" Data Source=servername; Database=master; Trusted_Connection=yes "; xconn.Open(); SqlCommand ycmd = new SqlCommand ("select * from tablename where column
try
{
SqlConnection xconn = new SqlConnection();
xconn.ConnectionString = @" Data Source=servername; Database=master; Trusted_Connection=yes ";
xconn.Open();
SqlCommand ycmd = new SqlCommand ("select * from tablename where column1 = @name", xconn);
ycmd.Parameters.Add("@name", dropdownlist.SelectedValue);
SqlDataAdapter da = new SqlDataAdapter(s,xconn);
SqlCommandBuilder cmdbuilder = new SqlCommandBuilder(da);
DataTable dt = new DataTable();
da.Fill(dt);
gridview.DataSource = dt;
gridview.DataBind();
}
catch(Exception ex)
{
label.Text = ex.Message + "\n" + ex.StackTrace;
}
如何让它工作?试试这个:
try
{
SqlConnection xconn = new SqlConnection();
xconn.ConnectionString = @" Data Source=servername; Database=master; Trusted_Connection=yes";
SqlCommand ycmd = new SqlCommand ("select * from tablename where column1 = @name", xconn);
ycmd.Parameters.Add("@name", dropdownlist.SelectedValue);
SqlDataAdapter da = new SqlDataAdapter(ycmd);
DataTable dt = new DataTable();
da.Fill(dt);
gridview.DataSource = dt;
gridview.DataBind();
}
catch(Exception ex)
{
label.Text = ex.Message + "\n" + ex.StackTrace;
}
使用SqlDataAdapter.Fill()方法时,不需要调用SqlConnection.Open()
。在该方法中,它打开连接,并在完成时处理/关闭连接。(这不是问题,仅供参考)
创建SqlDataAdapter
的方式就是问题所在。您没有使用SqlCommand
作为构造函数创建它,只使用命令文本。因此,您没有传入在SqlCommand
类中指定的参数
让我知道这是否有效。如果这不起作用,请尝试在SSMS中手动运行此查询,以确保它实际返回一个结果集。另外,请确保您的ListControl.SelectedValue
属性包含某些内容。通过调试和分析存储在那里的内容来执行此操作。是否存在异常??是否确定正在执行该命令??执行后发生了什么?你犯了什么错误