данные не вставляются в базу данных sql с помощью dataadapter ..? - PullRequest
0 голосов
/ 22 августа 2011

Вот код

string constr = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Inventory.mdf;Integrated Security=True;User Instance=True";
        SqlConnection con = new SqlConnection(constr);
        try
        {
            SqlDataAdapter sda = new SqlDataAdapter("SELECT * FROM Users", con);
            DataSet ds = new DataSet();
            con.Open();
            SqlCommandBuilder cmd = new SqlCommandBuilder(sda);
            sda.Fill(ds, "Users");
            DataRow row = ds.Tables["Users"].NewRow();
            row[0] = 2;
            row[1] = txtUsername.Text;
            row[2] = txtPassword.Text;
            ds.Tables["Users"].Rows.Add(row);
            int res=sda.Update(ds, "Users");
            con.Close();
            sda.Dispose();
            dgUser.ItemsSource = null;
            dgUser.ItemsSource = ds.Tables["Users"].DefaultView;
            ds.Dispose();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
        finally
        {
            if (con.State == ConnectionState.Open)
                con.Close();
            con.Dispose();
        }

Проблема в том, что он выполняется без ошибок, но при проверке в базе данных не будет вставки записи ... в чем может быть ошибка ..?

Ответы [ 3 ]

1 голос
/ 22 августа 2011

попробуйте сделать вставку вместо выбора

    SqlDataAdapter sda = new SqlDataAdapter("insert into Users (ID, UserName, Password) VALUES (2," + 
       txtUsername.Text + ", " + txtPassword.Text + ")", con);

но встроенный SQL вообще плохая идея. Было бы лучше написать хранимую процедуру и выполнить ее из вашего кода

0 голосов
/ 22 августа 2011

Вы настроили InsertCommand для адаптера данных?без его установки маловероятно, что адаптер узнает о необходимости вставить вашу запись.

вам нужно что-то вроде

cmd ="INSERT INTO ...."; // add param to this

sda.InsertCommand = cmd

Попробуйте обновить после установки этого значения (аналогично сделайте это для UpdateCommand для адаптераесли требуется)

0 голосов
/ 22 августа 2011

Если честно, я не вижу ошибок в коде. Можете ли вы попробовать отладку с точками останова и посмотреть, правильно ли строка добавлена ​​в набор данных перед передачей в базу данных?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...