В коде не отображается ошибка, но строки не добавляются в таблицу

#c# #sql

#c# #sql

Вопрос:

 public partial class add_dept : Form
{
    public add_dept()
    {
        InitializeComponent();
    }
    DataSet1 ds = new DataSet1();
    DataSet1TableAdapters.deptTableAdapter dta = new DataSet1TableAdapters.deptTableAdapter();

    private void button1_Click(object sender, EventArgs e)
    {
        if (textBox1.Text != "" amp;amp; textBox2.Text != "" amp;amp; textBox3.Text != "" amp;amp; textBox4.Text != "")
        {
            dta.Fill(ds.dept);
            bool flag = false;
            for (int i = 0; i <= ds.dept.Rows.Count - 1; i  )
            {
                if(textBox1.Text==ds.dept.Rows[i]["dept_name"].ToString())
                {
                    flag=true;
                    break;
                }
            }
            if (flag==false)
            {
                dta.Fill(ds.dept);
                DataRow d=ds.dept.NewRow();
                d["dept_name"]=textBox1.Text;
                d["emp_no"]=textBox2.Text;
                d["location"]=textBox3.Text;
                d["project_no"]=textBox4.Text;
                ds.dept.Rows.Add(d);
                dta.Update(ds.dept);
                MessageBox.Show("ROW ADDED");
            }
            else
            {
                MessageBox.Show("Department already exists");
            }
        }
    }
  

определение таблицы

 CREATE TABLE [dbo].[dept] 
(
    [dept_id]    INT          IDENTITY (100, 1) NOT NULL,
    [dept_name]  VARCHAR (25) NULL,
    [emp_no]     INT          NULL,
    [location]   VARCHAR (50) NULL,
    [project_no] INT          NULL,
    PRIMARY KEY CLUSTERED ([dept_id] ASC)
);
  

Комментарии:

1. Я попытался удалить тег из вашей строки заголовка, чтобы он выглядел так: «В коде не отображается ошибка, но в таблицу не добавляются строки», но система сообщает мне, что сообщение содержит почти только код и не позволяет мне сохранить эти изменения…. И система права, вопрос ничего не объясняет.

2. каково значение вашей flag переменной? Вы уже отладили свой код?

3. я отладил его, но он не выдает никаких ошибок …. начальное значение для флага равно false

4. код содержит только два интересных раздела: первый проверяет, существует ли имя уже в базе данных, а второй пытается добавить новую запись, если имя еще не присутствует. Мои вопросы касались значения flag переменной после проверки на уникальность, надеюсь, теперь ясно 😉

5. там тоже false … даже отображается сообщение «добавлена строка»… база данных bt не обновляется

Ответ №1:

Вы пробовали использовать

 d["emp_no"]=int.Parse(textBox2.Text);
  

вместо

 d["emp_no"]=textBox2.Text;
  

для ваших целых столбцов??