Неправильный синтаксис рядом с незамкнутой кавычкой после символьной строки
Я создаю приложение windows с использованием c# 2010, здесь я использую представление таблицы данных для выставления счетов, как только я сохраняю значения в базе данных, а затем через некоторое время я получаю свои первые значения счетов, и я делаю некоторые изменения и обновляю записи для того же номера счета, но эта ошибка времени пришла.
это для моего кода обновления
using (SqlConnection connect = new SqlConnection(db.Connectionstring())) { using (SqlCommand command = new SqlCommand()) { string pro = ""; int qty; int totqty; command.Connection = connect; command.CommandText = "update bill set staffid=staffid' and cstid='" + txtmobile.Text + "' and cstname='" + txtname.Text + "' and schemes='" + txtscheme2.Text + "' and counum='" + txtnum.Text + "' and date='" + txtdate.Text + "' and slno=slno, proname=proname, price=price, qty=qty, protax=protax, dis=dis, amt=amt where(recnum=@recnum)"; command.Parameters.Add(new SqlParameter("@staffid", SqlDbType.VarChar)); command.Parameters.Add(new SqlParameter("@cstid", SqlDbType.Int)); command.Parameters.Add(new SqlParameter("@cstname", SqlDbType.VarChar)); command.Parameters.Add(new SqlParameter("@schemes", SqlDbType.VarChar)); command.Parameters.Add(new SqlParameter("@counum", SqlDbType.VarChar)); command.Parameters.Add(new SqlParameter("@recnum", SqlDbType.Int)); command.Parameters.Add(new SqlParameter("@date", SqlDbType.VarChar)); command.Parameters.Add(new SqlParameter("@slno", SqlDbType.VarChar)); command.Parameters.Add(new SqlParameter("@proname", SqlDbType.VarChar)); command.Parameters.Add(new SqlParameter("@price", SqlDbType.Float)); command.Parameters.Add(new SqlParameter("@qty", SqlDbType.VarChar)); command.Parameters.Add(new SqlParameter("@protax", SqlDbType.Float)); command.Parameters.Add(new SqlParameter("@dis", SqlDbType.Float)); command.Parameters.Add(new SqlParameter("@amt", SqlDbType.Float)); command.Parameters.Add(new SqlParameter("@totamt", SqlDbType.Float)); command.Parameters.Add(new SqlParameter("@amtdis", SqlDbType.Float)); command.Parameters.Add(new SqlParameter("@finamt", SqlDbType.Float)); connect.Open(); foreach (DataGridViewRow row in dgvfind.Rows) { if (!row.IsNewRow) { command.Parameters["@staffid"].Value = txtstaff.Text; command.Parameters["@cstid"].Value = txtmobile.Text; command.Parameters["@cstname"].Value = txtname.Text; command.Parameters["@schemes"].Value = txtscheme2.Text; command.Parameters["@counum"].Value = txtnum.Text; command.Parameters["@recnum"].Value = lblbill.Text; command.Parameters["@date"].Value = txtdate.Text; command.Parameters["@slno"].Value = row.Cells[0].Value; command.Parameters["@proname"].Value = row.Cells[1].Value; pro = row.Cells[1].Value.ToString(); command.Parameters["@price"].Value = row.Cells[2].Value; command.Parameters["@qty"].Value = row.Cells[3].Value; qty = Convert.ToInt32(row.Cells[3].Value); command.Parameters["@protax"].Value = row.Cells[4].Value; command.Parameters["@dis"].Value = row.Cells[5].Value; command.Parameters["@amt"].Value = row.Cells[6].Value; command.Parameters["@totamt"].Value = txt_netamount.Text; command.Parameters["@amtdis"].Value = textBox3.Text; command.Parameters["@finamt"].Value = textBox2.Text; command.ExecuteNonQuery();
Но ошибка пришла
Incorrect syntax near ' and cstid='. Unclosed quotation mark after the character string ' and slno=slno, proname=proname, price=price, qty=qty, protax=protax, dis=dis, amt=amt where(recnum=@recnum)'.
Как решить вышеописанную ошибку, кто-нибудь даст мне идеи.
Что я уже пробовал:
Неправильный синтаксис рядом с незамкнутой кавычкой после символьной строки