Si Mohammed Ответов: 0

Как мне...это код кнопки обновления,


Саламо 3алайкум
я большой поклонник C# и хочу выполнить обновление кнопки, чтобы можно было обновить любую строку DataGridView, но когда я ставлю кнопку, появляются некоторые ошибки
as ==> int a = конвертировать.ToInt32(selectedRow.Ячейки[0]. Значение);
пожалуйста, если у кого-то есть решение, напишите Мне
private void button3_Click(object sender, EventArgs e){
           int selectedrowindex = admuserDataGridView.SelectedCells[0].RowIndex;
           DataGridViewRow selectedRow = admuserDataGridView.Rows[selectedrowindex];
           //int a = Convert.ToInt32(selectedRow.Cells["ItemId"].Value);
           int a = Convert.ToInt32(selectedRow.Cells[0].Value);
           try{cmd.Connection = cnx;
               cmd.CommandType = CommandType.Text;
               cnx.Open();
cmd.CommandText = "update admuser set Designation = '" + textdes.Text + "', Quantity = '" + txtQ.Text + "', PR = '" + textpr.Text + "', PO ='" + textpo.Text + "',Main Asset = '" + textMain.Text + "',Sec Asset = '" + textSec.Text + "',Serial Number = '" + textsn.Text + "',Process = '" + textp.Text + "',Supplier = '" + textSp.Text + "',Status = '" + textSt.Text + "',Original Project = '" + textorp.Text + "',Current Project = '" + textcup.Text + "', purchasing date = '" + timer.Value.Date.ToString() + "', Price = '" + textprice.Text + "',Dep Period = '" + textDep.Text + "',NBV = '" + textNBV.Text + "',State = '" + textState.Text +  "' where Item=" + a ;
               cmd.ExecuteNonQuery();
               cnx.Close();
               MessageBox.Show("U :D ", "PS");
               this.Close();
               Administrator ad = new Administrator();
               ad.Show();}
           catch(Exception ex){MessageBox.Show(ex.ToString()); } } }


Что я уже пробовал:

i'm a biginner of C# and i want to execute a button Update, that it suceptible to update any Line Of DataGridView

[no name]

Наиболее вероятным является то, что все, что находится в selectedRow.Ячейки[0] не могут быть преобразованы в int. Но поскольку вы приняли решение не говорить нам, в чем ошибка, это всего лишь предположение. Но вот о чем мне не нужно догадываться, так это о том, что вы приглашаете людей стереть вашу базу данных с помощью атаки SQL inject.

Si Mohammed

Это просто упражнение братан как тест,
Так что меня не волнует атака SQL inject
Однако
Почему SelectedRow. Cell[0] не может быть преобразован в int

[no name]

"Это просто упражнение, братан, как тест", ну и что? Сделайте это правильно с первого раза, и тогда вам не придется делать это снова и снова.
"Почему SelectedRow. Cell[0] не может быть преобразован в int", ну, я бы сказал, что это потому, что все, что находится в SelectedRow.Cell[0], не является строкой, которая может быть преобразована в int. Просто, как я уже говорил вам.

Si Mohammed

Спасибо за ваш совет

я и андерстауд,
спасибо снова

Dave Kreskowiak

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

Но, поскольку вы не думали, что сообщения об ошибках будут важны (они всегда важны!), на самом деле мы больше ничего не можем вам сказать.

Si Mohammed

Но когда я увижу ошибки, я буду в бешенстве.
потому что у меня не так много информации или методов, чтобы игнорировать ее

Dave Kreskowiak

Поскольку вы отказываетесь сообщить нам, что такое сообщение об ошибке, вы сами по себе.

Si Mohammed

О'Кей (y)

Si Mohammed

это сообщение об ошибке

int a = преобразовать.ToInt32(selectedRow.Клетки ["ItemId"].Ценность);

[no name]

Окаааай. Итак, настоящая проблема заключается в том, что вы понятия не имеете, в чем разница между строкой кода и сообщением об ошибке?

Si Mohammed

о чем ты говоришь, ха-ха-ха ??

Dave Kreskowiak

Это не сообщение об ошибке. Это строка кода.

Si Mohammed

ошибка в этой строке

Dave Kreskowiak

ЧТО ЭТО ЗА ЧЕРТОВО СООБЩЕНИЕ ОБ ОШИБКЕ!?!?!

Si Mohammed

хол вниз братан
это ошибка
= = & gt; Система.InvalidOperationException : La connection n'est pas fermée, l'état actuel de la connection est ouvert
Системы.Данных.База поставщиков.DbConnectionInternal.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory ,

Dave Kreskowiak

Это ошибка базы данных и не имеет абсолютно никакого отношения к той строке кода, которую вы опубликовали.

Ошибка означает, что вы пытаетесь открыть соединение, которое уже открыто.

Я выхожу. Счастливой вам жизни.

Si Mohammed

Спасибо брат
я думаю, что объявляю логический var в своей базе данных
спасибо

[no name]

Проверить, если столбец "идентификатор элемента" содержит только числовые данные?
//int a = преобразовать.ToInt32(selectedRow.Клетки ["ItemId"].Ценность);

Si Mohammed

Нет-это не числовые данные ; они невидимы в моей таблице,
я не знаю где именно ошибка

[no name]

таким образом, ваш itemid должен быть числовым и нетекстовым, чтобы преобразовать его в целое число здесь..какую ценность вы имеете в itemid?

Si Mohammed

ItemID имел много значений, потому что он генерирует все строки в DataGridView, так что об этом я хочу обновить вместе с ним

Karthik_Mahalingam

опубликуйте скриншот вашего datagridview

Si Mohammed

я не знаю хо я выкладываю скриншот
вы можете помочь мне сделать это

Karthik_Mahalingam

хозяин в http://imgur.com/ и поделитесь ссылкой

Si Mohammed

это не

http://imgur.com/gallery/BaVOn

Karthik_Mahalingam

так в чем же проблема?

Si Mohammed

например если я хочу обновить какую то строку DataGridView что нибудь произойдет

Karthik_Mahalingam

вы получаете какую-нибудь ошибку?

Si Mohammed

я этого

Система.InvalidOperationException : La connection n'est pas fermée, l'état actuel de la connection est ouvert
Системы.Данных.База поставщиков.DbConnectionInternal.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory ,

Karthik_Mahalingam

пробовать

if (cnx. State == ConnectionState.Закрытый)
индекса CNX.Открыть();

Si Mohammed

Спасибо брат
это работа

Karthik_Mahalingam

добро пожаловать :)

0 Ответов