Как я могу изменить таблицу данных с помощью выпадающего списка? - PullRequest
1 голос
/ 17 февраля 2020

Я пытаюсь изменить таблицу данных с помощью выпадающего списка. Но я не могу изменить параметры. Как я могу изменить таблицу базы данных?

public DataTable TableLoad()
    {
        DataSet AL2020DS = new DataSet();
        SqlDataAdapter SQLDA = new SqlDataAdapter();
        SqlCommand Cmd1;
        string Sql = "SELECT * FROM @value ORDER BY [Donanım Seri No] ASC";
        Cmd1 = new SqlCommand(Sql, con);
        Cmd1.Parameters.AddWithValue("@value", cbbox_llisteler.Text);
        SQLDA.SelectCommand = Cmd1;
        DataTable AL2020DT = new DataTable();
        SQLDA.Fill(AL2020DT);
        return AL2020DT;
    }

public Form1()
    {
        InitializeComponent();
        dataGridView1.DataSource = TableLoad();
    }

Когда я пробую эту команду параметров, я получаю эту ошибку: Необходимо объявить переменную таблицы "@value"

Ответы [ 2 ]

0 голосов
/ 18 февраля 2020

Я нахожу решение

string Sql = "SELECT * FROM " + TextBox1.Text + " ORDER BY [Hardware Serial Number] ASC"

Я использую этот код в функции щелчка.

0 голосов
/ 17 февраля 2020

Ваше @ значение не интерполируется. Либо используйте string.Format(), либо, если вы используете C # 6, используйте синтаксис ниже. Также обратите внимание, что я удалил ASC как значение по умолчанию, и нет необходимости упоминать его.

string Sql = $"SELECT * FROM {value} ORDER BY [Donanım Seri No]";

Опять же, в приведенной ниже строке кода вы пытаетесь передать имя таблицы в качестве параметра, что невозможно. Вы можете передавать только параметр запроса в качестве параметра, а не имя таблицы / столбца.

Так что, по сути, вы бы сделали как

    string Sql = $"SELECT * FROM {cbbox_llisteler.Text} ORDER BY [Donanım Seri No] ASC";
    Cmd1 = new SqlCommand(Sql, con);        
    SQLDA.SelectCommand = Cmd1;
...