Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

клиент-серверное приложение С#

34K
11 января 2012 года
Dinar1623
57 / / 14.11.2010
Здравствуйте. Помогите пожалуйста найти проблему. Я отправляю с клиента на сервер SQL-запрос, который должен изменить в строке БД значение с "Доступен" на "Заказан". И клиент и сервер это Windows приложения.
Код клиента:
 
Код:
TcpClient client=client = new TcpClient("localhost", 8080);
int i = 0;
int j = 0;
sql = "UPDATE Tovar SET Status='Заказан' WHERE ([Nazvanie]='" +DataGridView[i, j].Value + "')";
Byte[] bites = System.Text.Encoding.ASCII.GetBytes(sql);
NetworkStream NS = client.GetStream();
NS.Write(bites, 0, bites.Length);

Код сервера:
Код:
TcpClient Client = server.AcceptTcpClient();
 //получили поток клиента
 NetworkStream ClientStream = Client.GetStream();
String sql = String.Empty;
Byte[] bytes = new Byte[256];
Int32 a = ClientStream.Read(bytes, 0, bytes.Length);
sql = System.Text.Encoding.UTF8.GetString(bytes, 0, a);
//выполнение SQL-запроса
OleDbDataAdapter DA = new OleDbDataAdapter(sql, DBConn);
DataSet data = new DataSet("Tovar");
DA.Fill(data);

Но при обновлении DataGridView в строке, где должно быть изменение ставятся- ??????, кроме этого изменяется значение только 1-й стоки 1-го столбца. Подскажите пожалуйста как можно это исправить?
277
12 января 2012 года
arrjj
1.7K / / 26.01.2011
Передавай данные в юникоде (UTF8 , а лучше UTF16)
240
12 января 2012 года
aks
2.5K / / 14.07.2006
Цитата: arrjj
UTF8 , а лучше UTF16


Не лучше.

34K
12 января 2012 года
Dinar1623
57 / / 14.11.2010
Цитата: arrjj
Передавай данные в юникоде (UTF8 , а лучше UTF16)


Вы правы. Переделал передачу данных и все заработало)))
Но осталась еще одна проблема. Как мне получит название, которое клиент отправил серверу? Я пробовал так:

 
Код:
sql = "UPDATE Tovar SET Status='Заказан' WHERE ([Nazvanie]='" +DataGridView[i, j].Value + "')";
Byte[] bites = System.Text.Encoding.UTF8.GetBytes(sql);

Но значение всегда меняется только в первой строке DataGridView.
277
12 января 2012 года
arrjj
1.7K / / 26.01.2011
Так ты ему и передаешь
int i = 0;
int j = 0;
т.е. DataGridView[i, j].Value всегда равен 0-й ячейке0-го столбца.
34K
13 января 2012 года
Dinar1623
57 / / 14.11.2010
А как записать значение ячейки, которую выбрал пользователь в DataGridView?
20K
15 января 2012 года
sem2711
124 / / 23.09.2009
[QUOTE=Dinar1623]А как записать значение ячейки, которую выбрал пользователь в DataGridView?[/QUOTE]
SelectedCells
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог