C# 数据网格未显示

C# 数据网格未显示,c#,sql,ado.net,C#,Sql,Ado.net,我试图将sql中的数据显示到datagrid中,如下所示: try { SqlConnection xconn = new SqlConnection(); xconn.ConnectionString = @"Data Source=servername; Trusted_Connection=yes; Database=master"; xconn.Open(); string s = "select * from t

我试图将sql中的数据显示到datagrid中,如下所示:

 try
    {
        SqlConnection xconn = new SqlConnection();
        xconn.ConnectionString = @"Data Source=servername; Trusted_Connection=yes; Database=master";
        xconn.Open();
        string s = "select * from tablename where name=@name";
        SqlCommand ycmd = new SqlCommand(s, xconn);

        ycmd.Parameters.Add("@name", dropdownlistname.SelectedValue);
        SqlDataAdapter da = new SqlDataAdapter(ycmd);

        DataTable dt = new DataTable();
        da.Fill(dt);
        gridview.DataSource = dt;
        gridview.DataBind();
    }
    catch (Exception e2)
    {
        lblresult.Text = e2.Message + "<br />" + e2.StackTrace  ; 
    }
试试看
{
SqlConnection xconn=新的SqlConnection();
xconn.ConnectionString=@“数据源=服务器名;可信连接=是;数据库=主机”;
xconn.Open();
string s=“从tablename中选择*,其中name=@name”;
SqlCommand ycmd=新的SqlCommand(s,xconn);
ycmd.Parameters.Add(“@name”,dropdownlistname.SelectedValue);
SqlDataAdapter da=新的SqlDataAdapter(ycmd);
DataTable dt=新的DataTable();
da.填充(dt);
gridview.DataSource=dt;
gridview.DataBind();
}
捕获(异常e2)
{
lblresult.Text=e2.Message+“
”+e2.StackTrace; }
我没有任何例外。但是,不显示栅格

像这样试试

您可以根据您的要求进行更改

SqlCommand command = new SqlCommand();
command.CommandText = "SELECT * FROM Product WHERE Product.ID=@PROD_ID";
command.Parameters.Add(new SqlParameter("@PROD_ID", 100));

// Execute the SQL Server command...
SqlDataReader reader = command.ExecuteReader();
DataTable tblProducts = new DataTable();
tblProducts.Load(reader);

foreach (DataRow rowProduct in tblProducts.Rows)
{
    // Use the data...
}

它不起作用,因为您正在为sql语句定义一个参数
@name
,但自
SqlCommand.Parameters版本以来,您从未提供过任何值。接受两个参数的Add
是接收parameterNameSqlDbType

我很惊讶你没有得到例外。可能您的
dropdownlistname.SelectedValue
SqlDbType的一个枚举值相匹配,这就是为什么

你应该做:

ycmd.Parameters.AddWithValue("@name", dropdownlistname.SelectedValue);

执行
Fill()
后,
da
中是否有任何值?