Динамическое создание SQL для DeleteCommand не поддерживается для SelectCommand


   public partial class Form1 : Form
    {
        DataSet ds;
        SqlDataAdapter adapter;
        SqlCommandBuilder commandBuilder;
        string connectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=meddb;Integrated Security=True";
        string sql = "SELECT * FROM medical";

        public Form1()
        {
            InitializeComponent();

            dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
            dataGridView1.AllowUserToAddRows = false;

            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                connection.Open();
                adapter = new SqlDataAdapter(sql, connection);

                ds = new DataSet();
                adapter.Fill(ds);
                dataGridView1.DataSource = ds.Tables[0];
                // делаем недоступным столбец id для изменения

            }
        }

        private void Button1_Click(object sender, EventArgs e)
        {
            DataRow row = ds.Tables[0].NewRow(); // добавляем новую строку в DataTable
            ds.Tables[0].Rows.Add(row);

        }

        private void Button2_Click(object sender, EventArgs e)
        {
            foreach (DataGridViewRow row in dataGridView1.SelectedRows)
            {
                dataGridView1.Rows.Remove(row);
            }
        }

        private void Button3_Click(object sender, EventArgs e)
        {
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                connection.Open();
                adapter = new SqlDataAdapter(sql, connection);
                commandBuilder = new SqlCommandBuilder(adapter);
                adapter.InsertCommand = new SqlCommand("sp_CreateMedical", connection);
                adapter.InsertCommand.CommandType = CommandType.StoredProcedure;
                adapter.InsertCommand.Parameters.Add(new SqlParameter("@drug_name", SqlDbType.NText, 50, "Drug_Name"));
                adapter.InsertCommand.Parameters.Add(new SqlParameter("@drug_amount", SqlDbType.Int, 0, "Drug_Amount"));
                adapter.InsertCommand.Parameters.Add(new SqlParameter("@drug_price", SqlDbType.Int, 0, "Drug_Price"));
                SqlParameter parameter = adapter.InsertCommand.Parameters.Add("@drug_id", SqlDbType.Int, 0, "drug_id");
                parameter.Direction = ParameterDirection.Output;

                adapter.Update(ds);
                _ = adapter.Update(ds);
            }
        }
    }


Ответы (0 шт):