Click here to Skip to main content
15,891,184 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
See more:
Описание: Необработанное исключение возникло во время выполнения текущего веб-запроса.

What I have tried:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace Taxi
{
    public partial class Add_New_Driver : Form
    {
        SqlConnectionStringBuilder bldr;
        SqlConnection cn;


        public Add_New_Driver()
        {
            InitializeComponent();
            bldr = new SqlConnectionStringBuilder();
            bldr.DataSource = @"HOME-ПК\MYSQL";
            bldr.IntegratedSecurity = true;
            // bldr.AttachDBFilename = @"E:\Programs\SQL\MSSQL12.MYSQL\MSSQL\DATA\Тест_Автотранспортное_Предприятие.mdf";
         bldr.AttachDBFilename = @"E:\Тест_Автотранспортное_Предприятие.mdf";
           // bldr.AttachDBFilename = "" + Application.StartupPath.ToString() + "\\" + "Тест_Автотранспортное_Предприятие.mdf";




            label1.Text = "Дата рождения";
            label2.Text = "Категория водительского удостоверения";
            label3.Text = "Семейное положение";
            label4.Text = "Фамилия Имя Отчество водителя";

            button1.Text = "Добавить";
        }

        private void Add_New_Driver_Load(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            string strSQL;
            
            using (SqlConnection cn = new SqlConnection(bldr.ConnectionString))
            {
                try
                {
                    cn.Open();
                     strSQL = "SELECT * FROM Водители";

                     SqlDataAdapter da = new SqlDataAdapter(strSQL, cn);
                     DataTable t = new DataTable("Водители");
                     da.Fill(t);
                     DataRow rowToInsert;
                     rowToInsert = t.Rows.Add(new object[] { Convert.ToInt32(textBox4.Text), dateTimePicker1.Value.ToString("yyyy-MM-dd"), textBox1.Text, textBox2.Text, textBox3.Text });

                     string strInsert = @"INSERT INTO Водители ([Код водителя], [Дата рождения], [Категория водительского удостоверения], [Семейное положение], [Фамилия Имя Отчество водителя])" + "VALUES (@[Код водителя], @[Дата рождения], @[Категория водительского удостоверения], @[Семейное положение], @[Фамилия Имя Отчество водителя]) ";

                     SqlCommand cmdInsert = new SqlCommand(strInsert, cn);
                     cmdInsert.Parameters.AddWithValue("@Код водителя", rowToInsert["Код водителя"]);
                     cmdInsert.Parameters.AddWithValue("@Дата рождения", rowToInsert["Дата рождения"]);
                     cmdInsert.Parameters.AddWithValue("@Категория водительского удостоверения", rowToInsert["Категория водительского удостоверения"]);
                     cmdInsert.Parameters.AddWithValue("@Семейное положение", rowToInsert["Семейное положение"]);
                     cmdInsert.Parameters.AddWithValue("@Фамилия Имя Отчество водителя", rowToInsert["Фамилия Имя Отчество водителя"]);

                     cmdInsert.ExecuteNonQuery();
                     rowToInsert.AcceptChanges();
                    

                   /* string insertWorker = "INSERT INTO Водители VALUES (" + Convert.ToInt32(textBox4.Text) + ",'" + dateTimePicker1.Value + "','" + textBox1.Text + "','" +
                     textBox2.Text + "','" + textBox3.Text + "')";
                    SqlCommand insert = new SqlCommand(insertWorker, cn);
                    if (insert.ExecuteNonQuery() == 1)
                        MessageBox.Show("Запись успешно добавлена!", "Добавление записи", MessageBoxButtons.OK, MessageBoxIcon.Information);*/
                    
                    cn.Close();
                }

                catch (SqlException ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }
    }
}
Posted
Updated 13-Dec-18 10:30am

Parameter names cannot contain spaces. Try:
C#
string strInsert = @"INSERT INTO Водители ([Код водителя], [Дата рождения], [Категория водительского удостоверения], [Семейное положение], [Фамилия Имя Отчество водителя])" + "VALUES (@[Кодводителя], @[Датарождения], @[Категорияводительскогоудостоверения], @[Семейноеположение], @[ФамилияИмяОтчествоводителя]) ";

 SqlCommand cmdInsert = new SqlCommand(strInsert, cn);
 cmdInsert.Parameters.AddWithValue("@Кодводителя", rowToInsert["Код водителя"]);
 cmdInsert.Parameters.AddWithValue("@Датарождения", rowToInsert["Дата рождения"]);
 cmdInsert.Parameters.AddWithValue("@Категорияводительскогоудостоверения", rowToInsert["Категория водительского удостоверения"]);
 cmdInsert.Parameters.AddWithValue("@Семейноеположение", rowToInsert["Семейное положение"]);
 cmdInsert.Parameters.AddWithValue("@ФамилияИмяОтчествоводителя", rowToInsert["Фамилия Имя Отчество водителя"]);

 cmdInsert.ExecuteNonQuery();
 
Share this answer
 
Comments
Member 14079096 11-Dec-18 19:14pm    
Я переделал эту ошибку (пробовал другой вариант и помог), но в другом месте у меня есть эта ошибка again "должен объявить скалярную переменную @" Можете ли вы помочь мне с этим?
It looks to me like you tried to use:
Quote:
DataRow rowToInsert;


before it was instantiated.
 
Share this answer
 
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace Taxi
{
    public partial class Remove_Info_About_Driver : Form
    {
        SqlConnectionStringBuilder bldr;
        SqlConnection cn;

        public Remove_Info_About_Driver()
        {
            InitializeComponent();

            bldr = new SqlConnectionStringBuilder();
            bldr.DataSource = @"HOME-ПК\MYSQL";
            bldr.IntegratedSecurity = true;
            // bldr.AttachDBFilename = @"E:\Programs\SQL\MSSQL12.MYSQL\MSSQL\DATA\Тест_Автотранспортное_Предприятие.mdf";
            bldr.AttachDBFilename = @"E:\Тест_Автотранспортное_Предприятие.mdf";

            label1.Text = "Введите код водителя";
            label2.Text = "Дата рождения";
            label3.Text = "Категория водительского удостоверения";
            label4.Text = "Семейное положение";
            label5.Text = "Фамилия Имя Отчество водителя";
            button1.Text = "Поиск";
            button2.Text = "Найти и отредактировать";
            button3.Text = "Принять изменения";

        }

        private void Remove_Info_About_Driver_Load(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
             string strSQL;
             strSQL = "SELECT * FROM Водители";
            // string info;
            // string info1;
            string strOp;

            /*if (checkBox1.Checked == false || checkBox2.Checked == false)
                strOp = "OR";
            else
                strOp = "AND";*/
            
            if (checkBox1.Checked == true)
            strSQL = "SELECT * FROM Водители WHERE [Код водителя]='" + textBox1.Text + "'";

            if (checkBox2.Checked == true)
                strSQL = "SELECT * FROM Водители WHERE [Фамилия Имя Отчество водителя]= '" + textBox5.Text + "'"; 

            if (checkBox3.Checked == true)
                strSQL = "SELECT * FROM Водители WHERE [Дата рождения]= '" + dateTimePicker1.Value.ToString("yyyy-MM-dd") + "'";

            if (checkBox4.Checked == true)
                strSQL = "SELECT * FROM Водители WHERE [Категория водительского удостоверения]= '" + textBox3.Text + "'";

            if (checkBox5.Checked == true)
                strSQL = "SELECT * FROM Водители WHERE [Семейное положение]= '" + textBox4.Text + "'";



            using (cn = new SqlConnection(bldr.ConnectionString))
            {
                try
                {
                    cn.Open();
                    SqlCommand cmd = new SqlCommand(strSQL, cn);
                    SqlDataReader rdr = cmd.ExecuteReader();


                    DataTable t = new DataTable();
                    t.Load(rdr);
                    dataGridView1.DataSource = t.DefaultView;


                    cn.Close();
                }

                catch (SqlException ex)
                {
                    MessageBox.Show(ex.Message);
                }
                
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            string strSQL;
            strSQL = "SELECT * FROM Водители";
            
            string strOp;

            

            if (checkBox1.Checked == true)
                strSQL = "SELECT * FROM Водители WHERE [Код водителя]='" + textBox1.Text + "'";

            if (checkBox2.Checked == true)
                strSQL = "SELECT * FROM Водители WHERE [Фамилия Имя Отчество водителя]= '" + textBox5.Text + "'";

            if (checkBox3.Checked == true)
                strSQL = "SELECT * FROM Водители WHERE [Дата рождения]= '" + dateTimePicker1.Value.ToString("yyyy-MM-dd") + "'";

            if (checkBox4.Checked == true)
                strSQL = "SELECT * FROM Водители WHERE [Категория водительского удостоверения]= '" + textBox3.Text + "'";

            if (checkBox5.Checked == true)
                strSQL = "SELECT * FROM Водители WHERE [Семейное положение]= '" + textBox4.Text + "'";



            using (cn = new SqlConnection(bldr.ConnectionString))
            {
                try
                {
                    cn.Open();

                    if (checkBox1.Checked == true)
                        strSQL = "SELECT * FROM Водители WHERE [Код водителя]='" + textBox1.Text + "'";

                    if (checkBox2.Checked == true)
                        strSQL = "SELECT * FROM Водители WHERE [Фамилия Имя Отчество водителя]= '" + textBox5.Text + "'";

                    if (checkBox3.Checked == true)
                        strSQL = "SELECT * FROM Водители WHERE [Дата рождения]= '" + dateTimePicker1.Value.ToString("yyyy-MM-dd") + "'";

                    if (checkBox4.Checked == true)
                        strSQL = "SELECT * FROM Водители WHERE [Категория водительского удостоверения]= '" + textBox3.Text + "'";

                    if (checkBox5.Checked == true)
                        strSQL = "SELECT * FROM Водители WHERE [Семейное положение]= '" + textBox4.Text + "'";


                    SqlDataAdapter da = new SqlDataAdapter(strSQL, cn);
                    DataTable t = new DataTable("Водители");

                    da.Fill(t);
                    dataGridView1.DataSource = t;

                    textBox1.DataBindings.Add(new Binding("Text", t, "Код водителя"));
                    textBox1.Visible = true;
                    textBox3.DataBindings.Add(new Binding("Text", t, "Категория водительского удостоверения"));
                    textBox3.Visible = true;
                    textBox4.DataBindings.Add(new Binding("Text", t, "Семейное положение"));
                    textBox4.Visible = true;
                    textBox5.DataBindings.Add(new Binding("Text", t, "Фамилия Имя Отчество водителя"));
                    textBox5.Visible = true;
                    dateTimePicker1.DataBindings.Add(new Binding("Text", t, "Дата рождения"));
                    dateTimePicker1.Visible = true;

                    button2.Visible = true;

                    cn.Close();
                }

                catch (SqlException ex)
                {
                    MessageBox.Show(ex.Message);
                }

            }
        }

        private void button3_Click(object sender, EventArgs e)
        {
            using (cn = new SqlConnection(bldr.ConnectionString))
            {
                try
                {
                    cn.Open();

                    string strUpd = "UPDATE Водители " + "SET [Код водителя]=@[Кодводителя],[Дата рождения]=@[Датарождения]," + "[Категория водительского удостоверения]=@[Категрияводительскогоудостоверения],[Семейное положение]=@[Семейноеположение],[Фамилия Имя Отчество водителя]=@[ФамилияИмяОтчествоводителя] " + "WHERE [Код водителя] =@[Кодводителя] AND [Дата рождения]=@[Датарождения]";

                    SqlCommand cmdUpd = new SqlCommand(strUpd, cn);

                    cmdUpd.Parameters.AddWithValue("@Кодводителя", Convert.ToInt32(textBox1.Text));
                    cmdUpd.Parameters.AddWithValue("@Датарождения", dateTimePicker1.Value.ToString("yyyy-MM-dd"));
                    cmdUpd.Parameters.AddWithValue("@Категорияводительскогоудостоверения", textBox3.Text);
                    cmdUpd.Parameters.AddWithValue("@Семейноеположение", textBox4.Text);
                    cmdUpd.Parameters.AddWithValue("@ФамилияИмяОтчествоводителя", textBox5.Text);

                    int res = cmdUpd.ExecuteNonQuery();
                    if (res == 1)
                    {
                        string strSQL;
                        MessageBox.Show("Запись успешно отредактированна");

                        if (checkBox1.Checked == true)
                        {
                            strSQL = "SELECT * FROM Водители WHERE [Код водителя]='" + textBox1.Text + "'";
                            SqlDataAdapter da1 = new SqlDataAdapter(strSQL, cn);
                            DataTable t1 = new DataTable("Водители");
                            da1.Fill(t1);
                            dataGridView1.DataSource = t1;

                        }
                        if (checkBox2.Checked == true)
                        {
                            strSQL = "SELECT * FROM Водители WHERE [Фамилия Имя Отчество водителя]= '" + textBox5.Text + "'";
                            SqlDataAdapter da2 = new SqlDataAdapter(strSQL, cn);
                            DataTable t2 = new DataTable("Водители");
                            da2.Fill(t2);
                            dataGridView1.DataSource = t2;
                        }
                        if (checkBox3.Checked == true)
                        {
                            strSQL = "SELECT * FROM Водители WHERE [Дата рождения]= '" + dateTimePicker1.Value.ToString("yyyy-MM-dd") + "'";
                            SqlDataAdapter da3 = new SqlDataAdapter(strSQL, cn);
                            DataTable t3 = new DataTable("Водители");
                            da3.Fill(t3);
                            dataGridView1.DataSource = t3;
                        }
                        if (checkBox4.Checked == true)
                        {
                            strSQL = "SELECT * FROM Водители WHERE [Категория водительского удостоверения]= '" + textBox3.Text + "'";
                            SqlDataAdapter da4 = new SqlDataAdapter(strSQL, cn);
                            DataTable t4 = new DataTable("Водители");
                            da4.Fill(t4);
                            dataGridView1.DataSource = t4;
                        }
                        if (checkBox5.Checked == true)
                        {
                            strSQL = "SELECT * FROM Водители WHERE [Семейное положение]= '" + textBox4.Text + "'";
                            SqlDataAdapter da5 = new SqlDataAdapter(strSQL, cn);
                            DataTable t5 = new DataTable("Водители");
                            da5.Fill(t5);
                            dataGridView1.DataSource = t5;
                        }

                    }

                    else
                        MessageBox.Show("Запись не отредактирована!");

                    cn.Close();

                }

                catch (SqlException ex)
                {
                    MessageBox.Show(ex.Message);

                }
    }
            }
        }
    }
 
Share this answer
 
Comments

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900