сетка данных не отображается - PullRequest
0 голосов
/ 10 ноября 2011

Я пытаюсь отобразить данные из 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  ; 
    }

Я не получаю никаких исключений.Однако сетка не отображается.

Ответы [ 2 ]

1 голос
/ 10 ноября 2011

попробуй так ....

Вы можете изменить это в зависимости от ваших требований ....

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...
}
0 голосов
/ 10 ноября 2011

Это не работает, потому что вы определяете параметр @name для своего оператора sql, но вы никогда не вводите никакого значения, поскольку версия SqlCommand.Parameters.Add, которая принимает 2 параметра, является той, которая получает имя_параметра и SqlDbType

Я удивлен, что вы не получаете исключений.Возможно, ваш dropdownlistname.SelectedValue соответствует одному из значений перечисления для SqlDbType , и вот почему?

Вы должны сделать:

ycmd.Parameters.AddWithValue("@name", dropdownlistname.SelectedValue);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...