Member 13439199 Ответов: 1

Он показывает только столбцы, но данные не появляются...? Пожалуйста, помогите мне в этом


public partial class Window_search : Window
    {
        public Window_search()
        {
            InitializeComponent();
        }

        private void Search_button_Click_1(object sender, RoutedEventArgs e)
        {
            var id = Device_id_TextBox.ToString(); 
            MySqlConnection con = new MySqlConnection("database");
            con.Open();
            DataTable devicetable = new DataTable();
            MySqlDataAdapter adapter = new MySqlDataAdapter("SELECT `Device_ID`, `Device_Name`, `Devic_Category`, `Status`, `Description`, `Customer_ID`, `Customer_Name` FROM `devicedetails` WHERE `Device_ID` = 'id'",con);

            try
            {
                
                adapter.Fill(devicetable);
                table_grid_view.DataContext = devicetable;
                con.Close();
            }
            catch (Exception Ex)
            {
                MessageBox.Show(Ex.Message);
            }
      

        }

        
    }
<pre lang="c#"><pre lang="c#">


Что я уже пробовал:

public partial class Window_search : Window
    {
        public Window_search()
        {
            InitializeComponent();
        }

        private void Search_button_Click_1(object sender, RoutedEventArgs e)
        {
            var id = Device_id_TextBox.ToString(); 
            MySqlConnection con = new MySqlConnection("database");
            con.Open();
            DataTable devicetable = new DataTable();
            MySqlDataAdapter adapter = new MySqlDataAdapter("SELECT `Device_ID`, `Device_Name`, `Devic_Category`, `Status`, `Description`, `Customer_ID`, `Customer_Name` FROM `devicedetails` WHERE `Device_ID` = 'id'",con);

            try
            {
                
                adapter.Fill(devicetable);
                table_grid_view.DataContext = devicetable;
                con.Close();
            }
            catch (Exception Ex)
            {
                MessageBox.Show(Ex.Message);
            }
      

        }

        
    }

FranzBe

Вы извлекаете значение "Device_id" из текстового поля в переменную " id "(которая будет иметь тип string, что, возможно, не то, что вы хотите, " int "как тип может быть лучше), но вы не передаете "device_id" вместе с sql-запросом. Вам нужно добавить SqlParameter.
Возможно, вы захотите вы можете посмотреть здесь:
https://www.codeproject.com/Questions/844395/How-to-pass-parameters-to-Sql-Data-Adapter

1 Ответов

Рейтинг:
0

OriginalGriff

Посмотрите на свой код:

MySqlDataAdapter adapter = new MySqlDataAdapter("SELECT `Device_ID`, `Device_Name`, `Devic_Category`, `Status`, `Description`, `Customer_ID`, `Customer_Name` FROM `devicedetails` WHERE `Device_ID` = 'id'",con);
Вы получаете только те записи, которые соответствуют явному и фиксированному условию: Device_ID столбцы содержат строку "id". Если ни один столбец не соответствует этому - а я очень сомневаюсь, что таковой имеется, - вы не получите никаких возвращенных строк.

Вероятно, вы хотели передать значение ID в качестве параметра запросу и вернуть соответствующие строки, а не фиксированную строку: Параметризованные запросы в MySQL | @Henning[^]