C# 数据网格未显示
我试图将sql中的数据显示到datagrid中,如下所示: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
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
是接收parameterName和SqlDbType
我很惊讶你没有得到例外。可能您的dropdownlistname.SelectedValue
与SqlDbType的一个枚举值相匹配,这就是为什么
你应该做:
ycmd.Parameters.AddWithValue("@name", dropdownlistname.SelectedValue);
执行
Fill()
后,da
中是否有任何值?