我正在尝试将数据从sql显示到数据网格中,如下所示:
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 ;
}
我没有任何例外。但是,不显示网格。
答案 0 :(得分:1)
尝试这样....
你可以改变这取决于你的要求......
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...
}
答案 1 :(得分:0)
它不起作用,因为你正在为你的sql语句定义一个参数@name
,但你永远不会提供任何值,因为带有2个参数的SqlCommand.Parameters.Add
版本是接收 parameterName 和 SqlDbType
我很惊讶你没有得到例外。也许您的dropdownlistname.SelectedValue
匹配 SqlDbType 的枚举值之一,这就是原因?
你应该这样做:
ycmd.Parameters.AddWithValue("@name", dropdownlistname.SelectedValue);