Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.21.76.0] |
|
Сообщ.
#1
,
|
|
|
Профессионалы , у меня проблема с типом поля, есть таблица в ней ключевым полем является name - имя оно типа varchar, когда заполняю данными (именами) названиями, ругается на неправильный тип, а сохраняет если только впишу цифровые значения, что делать? Сделал их ключевыми потому что по ним идет связь с другими таблицами
|
Сообщ.
#2
,
|
|
|
Срочно создавать суррогатный ключ и делать связь по нему! Если еще не поздно конечно.
Тестовые ключевые поля это не правильно, т.к. сильно пострадает эффективность при выполнении запросов |
Сообщ.
#3
,
|
|
|
Цитата drmiller @ Срочно создавать суррогатный ключ и делать связь по нему! Если еще не поздно конечно. Тестовые ключевые поля это не правильно, т.к. сильно пострадает эффективность при выполнении запросов а никак уже просто во всех таблицах отображать нужно это поле и связь идет по нему |
Сообщ.
#4
,
|
|
|
Цитата Ali002 @ а никак уже просто во всех таблицах отображать нужно это поле и связь идет по нему Получилось побороть varchar? Могу набросать примерчик через ADO.NET если нужно? Вопрос еще такой, а почему не пользуетесь какой то ORM? Не заморачивались бы со вставкой тогда. |
Сообщ.
#5
,
|
|
|
Цитата Craft @ Цитата Ali002 @ а никак уже просто во всех таблицах отображать нужно это поле и связь идет по нему Получилось побороть varchar? Могу набросать примерчик через ADO.NET если нужно? Вопрос еще такой, а почему не пользуетесь какой то ORM? Не заморачивались бы со вставкой тогда. получилось побороть! но примерчик ваш тож не помешает, не понял какое еще ORM , проблема у меня была в кодировке я все исправил |
Сообщ.
#6
,
|
|
|
Примерчик вставки Varchar поля.
private void Customer(string name) { var sql = "INSERT INTO Customers([Name]) VALUES(@Name);"; using(var connection = new SqlConnection()) { connection.ConnectionString = ConfigurationManager.ConnectionStrings["myconnection"].ConnectionString; connection.Open(); using(var command = new SqlCommand(sql, connection)) { command.Parameters.AddWithValue("@Name", name); //Add Varchar feild command.ExecuteNonQuery(); command.Parameters.Clear(); } } } Что такое ORM можете посмотреть презентацию ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework) |
Сообщ.
#7
,
|
|
|
Цитата Craft @ Спасибо, изучаю ваш материальчик=) Добавлено Цитата Craft @ Пользуясь случаем, можно задать вопрос не по теме, вот у меня есть запросик такой вывести все данные по таблице1, связанной с таблицей 2, где у таблицы 2 поле checkbox галочкой отмечено. Вот этот запрос работает у меня вот он: SELECT zayavka.id_zayavki, zayavka.tema_obucheniya, zayavka.name_kompleks, zayavka.period_obucheniya_S, zayavka.period_obucheniya_Do, zayavka.istoch_finansir, zayavka.FIO_ispolnitel, zayavka.data_postupl, zayavka.cel_obuch, zayavka.Ojid_rezult, zayavka.Osob_usl, zayavka.stoim_obuch, zayavka.mesto_proved_zan, analiz.otrabotano, zayavka.Id_company FROM zayavka INNER JOIN analiz ON zayavka.id_zayavki = analiz.id_zayavki WHERE (analiz.otrabotano = @znah) private void Zayav_Dogovor4_Load(object sender, EventArgs e) { this.zapros_proverka_otrabotkiTableAdapter.zapros_proverka_otrabotki(this.analyseDataSet.zapros_proverka_otrabotki, true); |
Сообщ.
#8
,
|
|
|
Цитата Ali002 @ теперь мне нужо аналогично только со значением False эого поля checkbox , пишу тож самое тока с False - пустая таблица, что то не так? Сложно сходу сказать. Недостаточно данных. Ваш код сложно читать, так как не хватает всех условий. Если я вас правильно понял то возьмите два отдельных DataSet в один загрузите с условием когда ваша галочка в true, в другое когда false. И попробуйте называть ваши контролы более осмысленно. Сложно осилить условие которое вы написали. Пример zapros_proverka_otrabotkiTableAdapter -> RequestCheckTableAdapter analyseDataSet -> AnylizeDataSet zapros_proverka_otrabotki -> RequestCheckDone Так читать будет вам самим легче. |
Сообщ.
#9
,
|
|
|
Цитата Craft @ Цитата Ali002 @ теперь мне нужо аналогично только со значением False эого поля checkbox , пишу тож самое тока с False - пустая таблица, что то не так? Сложно сходу сказать. Недостаточно данных. Ваш код сложно читать, так как не хватает всех условий. Если я вас правильно понял то возьмите два отдельных DataSet в один загрузите с условием когда ваша галочка в true, в другое когда false. И попробуйте называть ваши контролы более осмысленно. Сложно осилить условие которое вы написали. Пример zapros_proverka_otrabotkiTableAdapter -> RequestCheckTableAdapter analyseDataSet -> AnylizeDataSet zapros_proverka_otrabotki -> RequestCheckDone Так читать будет вам самим легче. Может быть с chekBox по другому проверку на не Checked надо делать потому что с checked он работает |
Сообщ.
#10
,
|
|
|
Цитата Ali002 @ Может быть с chekBox по другому проверку на не Checked надо делать потому что с checked он работает Это легко проверить. Вы же ваш код можете запустить на самой базе данных. Подставьте у ваш запрос 1 и 0 и проверьте те значения которые вам возвращает запрос. Может у вас просто нет данных которые удовлетворяют запросу. Реально самый простой способ проверить, выполнить запрос непосредственно на самой таблице с которой выбираете данные. |
Сообщ.
#11
,
|
|
|
Я подставлял, когда писал 1 то выводились правильные значения у которых я отметил chekbox checked, а когда нолис ставил то вообще ничего не выводил пустая таблица, хотя у меня там много значений где я не отметил chekbox в checked
Добавлено Цитата Craft @ На счет ОРМ я использую Entity Framework, со вставкой парился из за того что не поставил cp1251 для каждого атрибута в базе( забыл. А так то Framework рулит, только я в нем новичок) |
Сообщ.
#12
,
|
|
|
А поле otrabotano is NULLable? Если да, то провека на значения Да и Нет возврасает не все записи.
Попробый исполни запрос без условия WHERE (analiz.otrabotano = @znah) |
Сообщ.
#13
,
|
|
|
Цитата MIF @ А поле otrabotano is NULLable? Если да, то провека на значения Да и Нет возврасает не все записи. Попробый исполни запрос без условия WHERE (analiz.otrabotano = @znah) ТОгда выдается такое исключение: Не удалось включить ограничения. По меньшей мере одна строка содержит значение, нарушающее ограничения по отсутствию пустых значений, уникальности или внешним ключам.и да поле отработано null ( в базе тип поля BIT) |