Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / старый вопрос - как закинуть данные из грида в таблицу на сервере? / 25 сообщений из 25, страница 1 из 1
09.11.2004, 13:37
    #32773490
raur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
старый вопрос - как закинуть данные из грида в таблицу на сервере?
Привет всем.
вопрос поднимался не 1 раз, но я для себя ответа не нашел.
есть коннект к базе:

string myConnectionString = "Server=Epsilon;Database=Test;"User ID=sa;Password=1;Trusted_Connection=False;";
SqlConnection myConnection = new SqlConnection(myConnectionString);
myConnection.Open();
string myQuery = "select * from b_meet";
SqlCommand myCommand = new SqlCommand(myQuery,myConnection);
SqlDataAdapter Da = new SqlDataAdapter(myQuery,myConnectionString);
Da.SelectCommand=myCommand;
DataSet Ds = new DataSet();
Da.Fill(Ds);
this.ultraGrid1.DataSource=Ds;

данные появляются в гриде, после чего там правяться и ... надо обратно закинуть их на сервер. Объясните все подробно с примером плиз.
...
Рейтинг: 0 / 0
09.11.2004, 14:06
    #32773580
vooo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
старый вопрос - как закинуть данные из грида в таблицу на сервере?
См SqlDataAdapter UpdateCommand

Пример
http://groups.google.com/groups?hl=en&lr=&threadm=lzzTJPwuBHA.2048%40cpmsftngxa07&rnum=1&prev=/groups%3Fq%3DC%2523%2BSqlDataAdapter%2BUpdateCommand%26hl%3Den%26btnG%3DGoogle%2BSearch
...
Рейтинг: 0 / 0
09.11.2004, 14:19
    #32773621
raur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
старый вопрос - как закинуть данные из грида в таблицу на сервере?
спасибо, пошел смотреть,
но вопрос остается
...
Рейтинг: 0 / 0
09.11.2004, 15:36
    #32773830
raur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
старый вопрос - как закинуть данные из грида в таблицу на сервере?
help
...
Рейтинг: 0 / 0
09.11.2004, 15:39
    #32773835
raur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
старый вопрос - как закинуть данные из грида в таблицу на сервере?
string myConnectionString = "Server=Epsilon;Database=Test;User ID=sa;Password=1;Trusted_Connection=False;";
string myQuery = "select * from b_meet";

//open connection
SqlConnection myConnection = new SqlConnection(myConnectionString);

//declare dataAdapter
SqlDataAdapter Da = new SqlDataAdapter(myQuery,myConnectionString);

Da.SelectCommand = new SqlCommand(myQuery, myConnection);
SqlCommandBuilder custCB = new SqlCommandBuilder(Da);

myConnection.Open();
DataSet Ds = new DataSet();
Ds = (DataSet)ultraGrid1.DataSource;
Ds.AcceptChanges();
Da.Update(Ds);
- не идет сабака такая.
ЧТО не так написано?
...
Рейтинг: 0 / 0
09.11.2004, 15:45
    #32773852
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
старый вопрос - как закинуть данные из грида в таблицу на сервере?
raur
Код: plaintext
1.
2.
Ds = (DataSet)ultraGrid1.DataSource;
//Ds.AcceptChanges(); // лишнее, по изменениям и делается Update
Da.Update(Ds);
...
Рейтинг: 0 / 0
09.11.2004, 15:47
    #32773859
raur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
старый вопрос - как закинуть данные из грида в таблицу на сервере?
все равно не работает
...
Рейтинг: 0 / 0
09.11.2004, 15:48
    #32773867
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
старый вопрос - как закинуть данные из грида в таблицу на сервере?
попробуй так:
Da.Update(Ds.Tables[0]);
если не получится - смотри PK для таблицы
...
Рейтинг: 0 / 0
09.11.2004, 15:53
    #32773879
raur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
старый вопрос - как закинуть данные из грида в таблицу на сервере?
не получатся
а что такое РК для таблицы?
...
Рейтинг: 0 / 0
09.11.2004, 16:00
    #32773903
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
старый вопрос - как закинуть данные из грида в таблицу на сервере?
primary key. если он не считывается или его нет, то builder не может построить команды на обновление.
--
а fill ты делаешь ?
...
Рейтинг: 0 / 0
09.11.2004, 16:20
    #32773957
raur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
старый вопрос - как закинуть данные из грида в таблицу на сервере?
когда заполняю грид.
а что? еще и потом надо?
...
Рейтинг: 0 / 0
09.11.2004, 16:53
    #32774064
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
старый вопрос - как закинуть данные из грида в таблицу на сервере?
нет. достаточно одного раза.
но нужно, чтобы builder "увидел" метаданные, и самое главное, - чтобы он среди них обнаружил PK. иначе придется запросы на обновление писать руками [или строить в designer'е]
...
Рейтинг: 0 / 0
09.11.2004, 16:57
    #32774078
Worobjoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
старый вопрос - как закинуть данные из грида в таблицу на сервере?
В таблице на сервере PK indentity Increment стоит?
Если нет придется InsertCommand прописать.
...
Рейтинг: 0 / 0
09.11.2004, 17:09
    #32774115
raur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
старый вопрос - как закинуть данные из грида в таблицу на сервере?
Все поставил (ключ, indentity Increment) - не хочет и все...
послушайте, если есть возможность выложите работающий пример на основе грида, а я на его основе свой покавыряю.
Спасибо всем.
...
Рейтинг: 0 / 0
09.11.2004, 17:14
    #32774129
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
старый вопрос - как закинуть данные из грида в таблицу на сервере?
перед Fill попробуй добавить
Код: plaintext
Da.MissingSchemaAction=MissingSchemaAction.AddWithKey;
...
Рейтинг: 0 / 0
09.11.2004, 17:18
    #32774136
raur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
старый вопрос - как закинуть данные из грида в таблицу на сервере?
кузяперед Fill попробуй добавить
Код: plaintext
Da.MissingSchemaAction=MissingSchemaAction.AddWithKey;

все упало - не дает редактировать грид
...
Рейтинг: 0 / 0
09.11.2004, 17:21
    #32774149
Worobjoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
старый вопрос - как закинуть данные из грида в таблицу на сервере?
InsertCommand должен быть примерно таким
INSERT INTO Таблица (Поле1, Поле2)
VALUES (@Поле1, @Поле2);
SELECT Код, Поле1, Поле2
FROM Таблица
WHERE (Код = @@IDENTITY)
Надо еще Parameters ваять... попробуй пока без них
(а лучше, создай все в дизайнере и спиши от туда)
...
Рейтинг: 0 / 0
09.11.2004, 17:23
    #32774151
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
старый вопрос - как закинуть данные из грида в таблицу на сервере?
попробуй на родном гриде. должен дать :)
а потом разгребем с ultra (??? чей)
этот из-за идентити может капризничать
...
Рейтинг: 0 / 0
09.11.2004, 17:37
    #32774194
raur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
старый вопрос - как закинуть данные из грида в таблицу на сервере?
грид от infragistics
--
на сегодня я все... с утра с поезда, завтра продолжу
еще раз всем спасибо
буду мучать вас завтра.
...
Рейтинг: 0 / 0
09.11.2004, 19:09
    #32774378
Worobjoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
старый вопрос - как закинуть данные из грида в таблицу на сервере?
Долго не решался бросить пример сюда ведь я пишу на VB.NET :-(
Но просто здесь больше тем, да и времена меняется ;-)
Спрашивали - ну так получите
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
		cm_s.Connection = Me.Conn1
		cm_s.CommandText = "SELECT КодФИО, Фамилия, Имя, Отчество, ДатаРожден, ПасСерия, ПасНомер, ДатаВыдачи, КемВыдан, АдресПрописан, АдресФактич, МестоРаботы, Дополнительно FROM ФИО"

		cm_i.CommandText = "INSERT INTO ФИО (Фамилия, Имя, Отчество, ДатаРожден, ПасСерия, ПасНомер, ДатаВыдачи" & _
		", КемВыдан, АдресПрописан, АдресФактич, МестоРаботы, Дополнительно, дата_i, дата_u)" & _
		" VALUES (@Фамилия, @Имя, @Отчество, @ДатаРожден, @ПасСерия, @ПасНомер" & _
		", @ДатаВыдачи, @КемВыдан, @АдресПрописан, @АдресФактич, @МестоРаботы, @Дополнительно, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)" & _
		"; SELECT КодФИО, Фамилия, Имя, Отчество, ДатаРожден, ПасСерия, ПасНомер, ДатаВыдачи, КемВыдан, АдресПрописан, АдресФактич" & _
		", МестоРаботы, Дополнительно FROM ФИО WHERE (КодФИО = @@IDENTITY)"
		cm_i.Connection = Me.Conn1
		cm_i.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Фамилия", System.Data.SqlDbType.NVarChar, 64, "Фамилия"))
		cm_i.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Имя", System.Data.SqlDbType.NVarChar, 64, "Имя"))
		cm_i.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Отчество", System.Data.SqlDbType.NVarChar, 72, "Отчество"))
		cm_i.Parameters.Add(New System.Data.SqlClient.SqlParameter("@ДатаРожден", System.Data.SqlDbType.DateTime, 8, "ДатаРожден"))
		cm_i.Parameters.Add(New System.Data.SqlClient.SqlParameter("@ПасСерия", System.Data.SqlDbType.VarChar, 7, "ПасСерия"))
		cm_i.Parameters.Add(New System.Data.SqlClient.SqlParameter("@ПасНомер", System.Data.SqlDbType.Int, 4, "ПасНомер"))
		cm_i.Parameters.Add(New System.Data.SqlClient.SqlParameter("@ДатаВыдачи", System.Data.SqlDbType.DateTime, 8, "ДатаВыдачи"))
		cm_i.Parameters.Add(New System.Data.SqlClient.SqlParameter("@КемВыдан", System.Data.SqlDbType.NVarChar, 256, "КемВыдан"))
		cm_i.Parameters.Add(New System.Data.SqlClient.SqlParameter("@АдресПрописан", System.Data.SqlDbType.NVarChar, 256, "АдресПрописан"))
		cm_i.Parameters.Add(New System.Data.SqlClient.SqlParameter("@АдресФактич", System.Data.SqlDbType.NVarChar, 256, "АдресФактич"))
		cm_i.Parameters.Add(New System.Data.SqlClient.SqlParameter("@МестоРаботы", System.Data.SqlDbType.NVarChar, 128, "МестоРаботы"))
		cm_i.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Дополнительно", System.Data.SqlDbType.NVarChar, 256, "Дополнительно"))

		cm_u.CommandText = "UPDATE ФИО SET Фамилия = @Фамилия, Имя = @Имя, Отчество = @Отчество, ДатаРожден = @ДатаРожден" & _
		", ПасСерия = @ПасСерия, ПасНомер = @ПасНомер, ДатаВыдачи = @ДатаВыдачи, КемВыдан = @КемВыдан, АдресПрописан = @АдресПрописан" & _
		", АдресФактич = @АдресФактич, МестоРаботы = @МестоРаботы, Дополнительно = @Дополнительно, инет = 0, дата_u = CURRENT_TIMESTAMP WHERE (КодФИО = @Original_КодФИО)" & _
		"; SELECT КодФИО, Фамилия, Имя, Отчество, ДатаРожден, ПасСерия, ПасНомер, ДатаВыдачи, КемВыдан, АдресПрописан" & _
		", АдресФактич, МестоРаботы, Дополнительно FROM ФИО WHERE (КодФИО = @КодФИО)"
		cm_u.Connection = Me.Conn1
		cm_u.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Фамилия", System.Data.SqlDbType.NVarChar, 64, "Фамилия"))
		cm_u.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Имя", System.Data.SqlDbType.NVarChar, 64, "Имя"))
		cm_u.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Отчество", System.Data.SqlDbType.NVarChar, 72, "Отчество"))
		cm_u.Parameters.Add(New System.Data.SqlClient.SqlParameter("@ДатаРожден", System.Data.SqlDbType.DateTime, 8, "ДатаРожден"))
		cm_u.Parameters.Add(New System.Data.SqlClient.SqlParameter("@ПасСерия", System.Data.SqlDbType.VarChar, 7, "ПасСерия"))
		cm_u.Parameters.Add(New System.Data.SqlClient.SqlParameter("@ПасНомер", System.Data.SqlDbType.Int, 4, "ПасНомер"))
		cm_u.Parameters.Add(New System.Data.SqlClient.SqlParameter("@ДатаВыдачи", System.Data.SqlDbType.DateTime, 8, "ДатаВыдачи"))
		cm_u.Parameters.Add(New System.Data.SqlClient.SqlParameter("@КемВыдан", System.Data.SqlDbType.NVarChar, 256, "КемВыдан"))
		cm_u.Parameters.Add(New System.Data.SqlClient.SqlParameter("@АдресПрописан", System.Data.SqlDbType.NVarChar, 256, "АдресПрописан"))
		cm_u.Parameters.Add(New System.Data.SqlClient.SqlParameter("@АдресФактич", System.Data.SqlDbType.NVarChar, 256, "АдресФактич"))
		cm_u.Parameters.Add(New System.Data.SqlClient.SqlParameter("@МестоРаботы", System.Data.SqlDbType.NVarChar, 128, "МестоРаботы"))
		cm_u.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Дополнительно", System.Data.SqlDbType.NVarChar, 256, "Дополнительно"))
		cm_u.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_КодФИО", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "КодФИО", System.Data.DataRowVersion.Original, Nothing))
		cm_u.Parameters.Add(New System.Data.SqlClient.SqlParameter("@КодФИО", System.Data.SqlDbType.Int, 4, "КодФИО"))

		cm_d.Connection = Me.Conn1
		cm_d.CommandText = "DELETE FROM ФИО WHERE (КодФИО = @Original_КодФИО)"
		cm_d.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_КодФИО", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "КодФИО", System.Data.DataRowVersion.Original, Nothing))

		ad1.SelectCommand = cm_s
		ad1.InsertCommand = cm_i
		ad1.UpdateCommand = cm_u
		ad1.DeleteCommand = cm_d

		ds1.Tables.Add("ФИО")
		ad1.Fill(ds1.Tables("ФИО"))
		Me.Grid1.DataSource = ds1.Tables("ФИО")
Этот пример не хотел работать пока не прописал ВСЕ параметры.
И после этого мне хочется задать один и тот-же вопрос:
Неужели писать всю эту околесицу лучше, быстрее, меньше ошибок, чем работать в дизайнере?
И главный прикол: Посмотрите в код - что создает дизайнер? - да те-же строки,
их можно редактировать и "там" и здесь.

Ну и еще вопрос: работаю и живу где-то в сибири - Мегион.
Не могу достать нормальную инсталляцию VS.NET2003,
а тут уже про 2005 говорят. Может кто-нибудь поможет с этим.
...
Рейтинг: 0 / 0
10.11.2004, 09:31
    #32774721
raur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
старый вопрос - как закинуть данные из грида в таблицу на сервере?
как я прочитал, команда Update выполняет все необходимые операции сама и писать их не обязательно, или не так?
...
Рейтинг: 0 / 0
10.11.2004, 09:44
    #32774752
Worobjoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
старый вопрос - как закинуть данные из грида в таблицу на сервере?
Скажу честно: никогда не использовал UpdateCommand, созанную по умолчанию. Получается слегка не то что нужно.
В данном случае надо создать ручками по той-же причине.
Поясню:
Если Identity Increment = 1, то UpdateCommand не работает по причине:
Set КодЗаписи = @КодЗаписи
эта строчка не пройдет, а она создается по умолчанию.
Если Identity Increment = 0, то "Сглючит" InsertCommand по причине неуникальности кода.
...
Рейтинг: 0 / 0
10.11.2004, 10:09
    #32774801
raur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
старый вопрос - как закинуть данные из грида в таблицу на сервере?
в общем ситуация - пошел писать руками
всем спасибо
по окончании поделюсь результатом
...
Рейтинг: 0 / 0
10.11.2004, 10:14
    #32774812
Worobjoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
старый вопрос - как закинуть данные из грида в таблицу на сервере?
Да, и еще: посмотри что натворит мастер (в дизайнере) с клаузой WHERE
Думаю после этого желание доверять ему поубавится.
Нет, он делает все правильно, но слишком много лишнего - все ради честной оптимистической блокировки. Вопрос в ней, блокировке - надо знать с чем имеешь дело и быть готовым к не совсем тому, чего ожидаешь.
То, что показано в примере - оптимистическая блокировка с правилом "кто последний, тот и прав". Не всегда это правильно, но всегда работает. Напротив, то что предложит мастер: Update заткнется на строчке, которую обновил другой пользователь (или пропустит эти записи - как настроишъ).
Кстати о блокировке: ба-альшой айсберг, особенно в бухгалтерских программах.
...
Рейтинг: 0 / 0
10.11.2004, 13:32
    #32775407
raur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
старый вопрос - как закинуть данные из грида в таблицу на сервере?
сижу и мучаюсь (как когда-то с ВБ)
выяснил: нужно закидывать не весь datasourse(грида) в dataset, а через datatable (грид.table[0]) - либо через индексы, либо еще как-нить.
простите за вопрос:
А КАК?
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / старый вопрос - как закинуть данные из грида в таблицу на сервере? / 25 сообщений из 25, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]