powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / value of type 'date' cannot be converted to System.Data.SqlClient.
43 сообщений из 43, показаны все 2 страниц
value of type 'date' cannot be converted to System.Data.SqlClient.
    #32633167
irinka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в коде при присвоении параметру значения переменной ParametrDate, подчеркивается эта переменная.
в пояснении написано, что
value of type 'date' cannot be converted to System.Data.SqlClient.
Что не так с типом?

ниже приведен код, в котором эта самая переменная как бы выделена красным (как бы потому как она стоит только в тегах и без красного цвета)
Код: 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.
Public Sub UpdateParametr(ByRef ParametrName As String, ByRef ParametrInt As Short, ByRef ParametrDate As DateTime, ByRef ParametrStr As String)
        dacmdParametrs.SelectCommand = New System.Data.SqlClient.SqlCommand()
        dacmdParametrs.UpdateCommand = New System.Data.SqlClient.SqlCommand()

        dacmdParametrs.UpdateCommand.CommandText = "update tglobal set parametr_name=@parametr_name, parametr_value_int=@parametr_value_int, parametr_value_date=@parametr_value_date, parametr_value_string=@parametr_value_string where (parametr_name=@parametr_name) And (parametr_value_int=@parametr_value_int) And (parametr_value_date=@parametr_value_date) And (parametr_value_string=@parametr_value_string)"
        dacmdParametrs.UpdateCommand.Connection = SqlConnection1

        dacmdParametrs.UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@parametr_name", System.Data.SqlDbType.VarChar,  50 , "parametr_name"))
        dacmdParametrs.UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@login_user", System.Data.SqlDbType.VarChar,  50 , "login_user"))
        dacmdParametrs.UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@parametr_value_int", System.Data.SqlDbType.Int,  0 , "parametr_value_int"))
        dacmdParametrs.UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@parametr_value_date", System.Data.SqlDbType.DateTime,  8 , "parametr_value_date"))
        dacmdParametrs.UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@parametr_value_string", System.Data.SqlDbType.VarChar,  50 , "parametr_value_string"))


        dacmdParametrs.SelectCommand.CommandText = "SELECT parametr_value_int, parametr_value_date, parametr_value_string, login_user, parametr_name FROM TGlobal WHERE (parametr_name like @parametr_name) AND (login_user like @login_user)"
        dacmdParametrs.SelectCommand.Connection = SqlConnection1
        dacmdParametrs.SelectCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@parametr_name", System.Data.SqlDbType.VarChar,  50 , "parametr_name"))
        dacmdParametrs.SelectCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@login_user", System.Data.SqlDbType.VarChar,  50 , "login_user"))

        dacmdParametrs.SelectCommand.Parameters("@parametr_name").Value = ParametrName
        dacmdParametrs.SelectCommand.Parameters("@login_user").Value = myuser


        dacmdParametrs.Fill(dscmdParametrs)

        If (dscmdParametrs.Tables( 0 ).Rows.Count =  0 ) Then
           ...
        Else
            If Not IsNothing(ParametrInt) Then
                dacmdParametrs.UpdateCommand.Parameters("@parametr_name").Value = ParametrName
            End If
            If Not IsNothing(ParametrDate) Then
                dacmdParametrs.UpdateCommand.Parameters("@parametr_value_date") = [color=red]ParametrDate[/color]
            End If
            If Not IsNothing(ParametrStr) Then
               dacmdParametrs.UpdateCommand.Parameters("@parametr_value_string") = ParametrStr
            End If
        End If

        dacmdParametrs.Update(dscmdParametrs)
    End Sub
...
Рейтинг: 0 / 0
value of type 'date' cannot be converted to System.Data.SqlClient.
    #32633256
irinka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извините, вопрос снимается
Наконец-то я увидела, что забыла написать .Value
...
Рейтинг: 0 / 0
value of type 'date' cannot be converted to System.Data.SqlClient.
    #32633335
irinka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
:(
код-то теперь без ошибок, а вот рез-т выполнения его я не вижу.
может я что-то не так написала?
этот код находится в модуле и вызывается на клик кнопки на форме таким образом:
Module1.UpdateParametr("glbArcBeginDate", 0, DateTimePicker1.Value, "")
Module1.UpdateParametr("glbArcEndDate", 0, DateTimePicker2.Value, "")

Я не пойму почему после его выполнения в таблице (в базе) ничего не меняется.
...
Рейтинг: 0 / 0
value of type 'date' cannot be converted to System.Data.SqlClient.
    #32633358
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) Что выдаст MsgBox перед Update:
Код: plaintext
1.
2.
MsgBox(dscmdParametrs.HasChanges)
dacmdParametrs.Update(dscmdParametrs)

2) Проверьте в дебаг режиме все параметры передаваемые Update. И попробуйте выполнить такой же Update на QA только уже вручную подставленными параметрами.
Код: plaintext
1.
"update tglobal set parametr_name=@parametr_name, parametr_value_int=xx, parametr_value_date=xx, parametr_value_string=xx where .........

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
value of type 'date' cannot be converted to System.Data.SqlClient.
    #32633373
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стоп, я что то не понял, так и не будет работать.
Вам надо просто выполнить Update ????
Если да то DataAdapter вообще не нужен. Просто выполняйте свой UpdateCommand
Код: plaintext
1.
cmd.ExecuteNonQuery() ' где cmd ваш UpdateCommand

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
value of type 'date' cannot be converted to System.Data.SqlClient.
    #32633532
irinka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
исправила на execute, пока все еще не добавляется в таблицу...
а по поводу этой строки
dacmdParametrs.Fill(dscmdParametrs)
...
по логике, это должно быть через адаптер в дадасет (как у меня и написано), потому как потом я просматриваю в сете выбранную запись и редактирую ее, правильно я понимаю?
...
Рейтинг: 0 / 0
value of type 'date' cannot be converted to System.Data.SqlClient.
    #32634215
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
исправила на execute, пока все еще не добавляется в таблицу...
а по поводу этой строки
dacmdParametrs.Fill(dscmdParametrs)
...
по логике, это должно быть через адаптер в дадасет (как у меня и написано), потому как потом я просматриваю в сете выбранную запись и редактирую ее, правильно я понимаю?

Но мы насколько я понимаю говорим не про Fill, а про Update и в этом случае можно обойтись без DataAdapter, так как вы решили передавать все параметры в UpdateCommand вручную.

Представьте DDL скрипт таблицы tglobal

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
value of type 'date' cannot be converted to System.Data.SqlClient.
    #32634310
irinka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я так понимаю, вы попросили структуру таблицы (sql скрипт):
Код: plaintext
1.
2.
3.
4.
5.
CREATE TABLE [dbo].[TGlobal] (
	[parametr_name] [varchar],
	[login_user] [varchar] ( 50 ),
	[parametr_value_int] [int] NULL ,
	[parametr_value_date] [datetime] NULL ,
	[parametr_value_string] [varchar] ( 256 ) NULL )
да мы, действительно говорим про Update просто может причина моей ошибки гораздо раньше, поэтому я уточнила про строку Fill.
...
Рейтинг: 0 / 0
value of type 'date' cannot be converted to System.Data.SqlClient.
    #32634326
irinka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
самое интересное, что тот код, кот написан в if после Else -
рез-т его действия не отражается в таблице, но также и для кода, кот написан до Else (его приведу чуть ниже)
Суть такая:
Если ни одной записи не занесено в сет, тогда выполняется код для добавления новой записи, а если условие удовлетворяется, тогда выполняется код, после Else
Вырезка из обработчика с if:
Код: 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.
If (dscmdParametrs.Tables( 0 ).Rows.Count =  0 ) Then
            Dim drDiscount As DataRow
            drDiscount = dscmdParametrs.Tables( 0 ).NewRow
            drDiscount.Item("parametr_name") = ParametrName
            drDiscount.Item("login_user") = myuser
            If Not IsNothing(ParametrInt) Then
                drDiscount.Item("parametr_value_int") = ParametrInt
            End If
            If Not IsNothing(ParametrDate) Then
                drDiscount.Item("parametr_value_date") = ParametrDate
            End If
            If Not IsNothing(ParametrStr) Then
                drDiscount.Item("parametr_value_string") = ParametrStr
            End If
            dscmdParametrs.Tables( 0 ).Rows.Add(drDiscount)
            SqlConnection1.Close()

        Else
            dacmdParametrs.UpdateCommand.Parameters("@login_user").Value = myuser
            dacmdParametrs.UpdateCommand.Parameters("@parametr_name").Value = ParametrName
            If Not IsNothing(ParametrInt) Then
                               dacmdParametrs.UpdateCommand.Parameters("@parametr_value_int").Value = ParametrInt
            End If
            If Not IsNothing(ParametrDate) Then
                                dacmdParametrs.UpdateCommand.Parameters("@parametr_value_date").Value = ParametrDate
            End If
            If Not IsNothing(ParametrStr) Then
                                dacmdParametrs.UpdateCommand.Parameters("@parametr_value_string").Value = ParametrStr
            End If
            SqlConnection1.Open()
            dacmdParametrs.UpdateCommand.ExecuteNonQuery()
            SqlConnection1.Close()
        End If
...
Рейтинг: 0 / 0
value of type 'date' cannot be converted to System.Data.SqlClient.
    #32634406
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Irinka, а, знаете от чего все Ваши беды?
Просто делайте точку останова на проблемной строке, а потом с помощью F8 продвигайтесь по коду занося при необходимости в Watch интересующие Вас переменные... Глядишь и станет ясно, где спрятана ошибка. Может какая то часть кода вообще не выполняется... Или ещё что...
P.S. Это не критика, а совет... Мне, например ОЧЕНЬ помогает в решении подобного рода проблем.
...
Рейтинг: 0 / 0
value of type 'date' cannot be converted to System.Data.SqlClient.
    #32634435
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
 If (dscmdParametrs.Tables( 0 ).Rows.Count =  0 ) Then
            Dim drDiscount As DataRow
            drDiscount = dscmdParametrs.Tables( 0 ).NewRow
            drDiscount.Item("parametr_name") = ParametrName
            drDiscount.Item("login_user") = myuser
            If Not IsNothing(ParametrInt) Then
                drDiscount.Item("parametr_value_int") = ParametrInt
            End If
            If Not IsNothing(ParametrDate) Then
                drDiscount.Item("parametr_value_date") = ParametrDate
            End If
            If Not IsNothing(ParametrStr) Then
                drDiscount.Item("parametr_value_string") = ParametrStr
            End If
            dscmdParametrs.Tables( 0 ).Rows.Add(drDiscount)
            SqlConnection1.Close()
Здесь, кстати, ничего и не добавиться -
1. не открыт Connection, а Вы его ещё и закрываете,
2. если уж хотите , что бы изменение отражалось в таблице, то делайте Adapter.Update(dscmdParametrs, "YourTableName"), после добавления новых строк
3. ...and etc.
...
Рейтинг: 0 / 0
value of type 'date' cannot be converted to System.Data.SqlClient.
    #32634442
irinka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vladgrig, спасибо за совет.
Я пробегала уже строки в вотче. Но вот что интересно, я , наверное не совсем понимаю вотч Нета, в VB6 было как на ладони.
Может вы меня вразумите :)
Вот я решила проверить, а что же за таблица есть в сете и вставила в вотч такую строку
dscmdParametrs.Tables
Скажите, я должна где-то там увидеть имя таблицы или нет и какой у нее Item в сете?
Пораскрывала всевозможные плюсы и ничего подобного не видела.
Заранее спасибо.
...
Рейтинг: 0 / 0
value of type 'date' cannot be converted to System.Data.SqlClient.
    #32634448
irinka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sa
Спасибо большое вам за помощь, выручили по многим вопросам :)
...
Рейтинг: 0 / 0
value of type 'date' cannot be converted to System.Data.SqlClient.
    #32634539
irinka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по поводу Connection, он открыт был раньше, так что с ним все нормально
...
Рейтинг: 0 / 0
value of type 'date' cannot be converted to System.Data.SqlClient.
    #32634864
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
irinka
я так понимаю, вы попросили структуру таблицы (sql скрипт):

Да это и называется DDL скрипт

vladgrig
если уж хотите , что бы изменение отражалось в таблице, то делайте Adapter.Update(dscmdParametrs, "YourTableName"), после добавления новых строк

Здесь надо разделять.
Либо мы делаем Update сами вручную, либо обучаем DataAdapter делать Update.

irinka пошла путем ручного формирования запроса для Update . Поэтому DataAdapter в этой процедуре и не нужен совсем.

Во первых я не пойму для чего тут Fill и Update т.е это здесь явно лишнее:
Код: plaintext
1.
2.
3.
dacmdParametrs.Fill(dscmdParametrs)
 'bla-bla-lba 
dacmdParametrs.Update(dscmdParametrs)
Также не понятно для чего здесь такой if. В общем опишите подробно задачу применительно к этому моменту, что хотите получить в итоге, что имеем на входе.

Плюс ко всему попробуйте это:
Sa
2) Проверьте в дебаг режиме все параметры передаваемые Update. И попробуйте выполнить такой же Update на QA только уже вручную подставленными параметрами.
Код: plaintext
1.
"update tglobal set parametr_name=@parametr_name, parametr_value_int=xx, parametr_value_date=xx, parametr_value_string=xx where ........


Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
value of type 'date' cannot be converted to System.Data.SqlClient.
    #32634883
irinka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор
vladgrig
2. если уж хотите , что бы изменение отражалось в таблице, то делайте Adapter.Update(dscmdParametrs, "YourTableName"), после добавления новых строк


можно глупый вопрос?
Чтобы сделать апдейт при встаке новой записи мне нужно дописать InsertCommand. А что нужно поставить в Values() этого команда?
мне немножко не понятно.
потому как для UpdateCommand я явно присваивала значения пар-рам, а здесь через drDiscount (который объявлен как DataRow)
...
Рейтинг: 0 / 0
value of type 'date' cannot be converted to System.Data.SqlClient.
    #32634905
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
irinka
Чтобы сделать апдейт при встаке новой записи мне нужно дописать InsertCommand. А что нужно поставить в Values() этого команда?
мне немножко не понятно.
потому как для UpdateCommand я явно присваивала значения пар-рам, а здесь через drDiscount (который объявлен как DataRow)

Для UpdateCommand вы делали неправилно, чтобы посмотреть как надо делать правильно и для InsertCommand "натравите" data wizard на создание SqlDataAdapter для вашей таблицы, и выдергивайте весь получаемый код себе в процедуру, тогда сам DataAdapter будет уметь правильно формировать все запросы к СУБД, на основе данных DataSet. Т.е. строка DataAdapter.Update(myDataSet) будет уместна.

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
value of type 'date' cannot be converted to System.Data.SqlClient.
    #32634939
irinka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Суть такова:
в таблице хранится логин, имя пар-ра и время когда пользователь работал с формой (форма, на кот как раз два календаря) и эти все значения соот-но должны внестись в табл автоматически (должно быть прописано программно, над этим кодом как раз и карпеем)
Теперь что в коде:
Там есть селекткомманд, в котором как раз прописано выбрать запись при условии что login_user - это данный пользоваель, кот вошел в данную программу, и parametr_name - это имя пар-ра glbArcBeginDate или glbArcEndDate, имена пар-ров которым соот-ют значения в поле parametr_value_date (начальня и конечная даты, выбранных в календарях на форме)
Далее заполняется датасет и если запись выбрана, тогда мы ее обнавляем (т е для найденного login_user и parametr_name меняем значение parametr_value_date ), а если не найдено, то добавляем пользователя пар-ры и даты, кот он выбрал.
Соот-но сет нужен, чтоб можно было выбрать, просмотреть и обновить.
Может я не права?
...
Рейтинг: 0 / 0
value of type 'date' cannot be converted to System.Data.SqlClient.
    #32634960
irinka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я правильо поняла, вот эта строка неправильная
dacmdParametrs.UpdateCommand.Parameters("@parametr_value_string").Value = ParametrStr
???
или самая первая часть, когда я объявляю адаптер, потом его комманды?
Я как раз смотрела по др форме и аналогично делала.
...
Рейтинг: 0 / 0
value of type 'date' cannot be converted to System.Data.SqlClient.
    #32634986
irinka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
только я смотрела на форму, где не sqldataadapter, а oledbdataadapter
...
Рейтинг: 0 / 0
value of type 'date' cannot be converted to System.Data.SqlClient.
    #32635018
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторпо поводу Connection, он открыт был раньше, так что с ним все нормально
А, зачем здесь тогда вот это?
Код: plaintext
1.
2.
3.
4.
  
SqlConnection1.Open()
dacmdParametrs.UpdateCommand.ExecuteNonQuery()
SqlConnection1.Close()
...
Рейтинг: 0 / 0
value of type 'date' cannot be converted to System.Data.SqlClient.
    #32635019
irinka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
далее
я имею в виду, что не пойму что писать в InsertCommand.CommandText="insert into tglobal Values(что писать здесь)"
если я использую drDiscount или вообще так нельзя?
...
Рейтинг: 0 / 0
value of type 'date' cannot be converted to System.Data.SqlClient.
    #32635093
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
insert into tglobal(имя_поля) Values(значение)"

Magnus
...
Рейтинг: 0 / 0
value of type 'date' cannot be converted to System.Data.SqlClient.
    #32635118
irinka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Magnus23


спасибо :)
но а если серьезно...
dacmdParametrs.UpdateCommand.CommandText = "update tglobal set parametr_name=@parametr_name..."

а здесь что
dacmdParametrs.UpdateCommand.CommandText = "insert into tglobal values( drDiscount.Item("parametr_name") , ...)
не так же писать

По поводу вашего уточнения...

можно писать и так:
insert into tglobal values(ла ла ла) без перечисления полей, если мы будем заносить значения во все поля, кот есть в табл
...
Рейтинг: 0 / 0
value of type 'date' cannot be converted to System.Data.SqlClient.
    #32635138
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Параментры нужны если используется хранимка, а в данном случае можно просто ставить значения

dacmdParametrs.InsertCommand.CommandText = "insert into tglobal values("& drDiscount.Item("parametr_name") , ...&")"

можно писать и так:
insert into tglobal values(ла ла ла) без перечисления полей, если мы будем заносить значения во все поля, кот есть в табл
Можно, но хорошей практикой считается указывать обновляемые поля.
Таблица ведь может изменится. Да и при дебаге удобнее, не лазить же каждый раз в базу чтобы посмотреть какие поля получают значения.

Magnus
...
Рейтинг: 0 / 0
value of type 'date' cannot be converted to System.Data.SqlClient.
    #32635161
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sa
Плюс ко всему попробуйте это:
Sa
2) Проверьте в дебаг режиме все параметры передаваемые Update. И попробуйте выполнить такой же Update на QA только уже вручную подставленными параметрами.
Код: plaintext
1.
"update tglobal set parametr_name=@parametr_name, parametr_value_int=xx, parametr_value_date=xx, parametr_value_string=xx where ........



Если формируете Command полностью вручную, то и нет смысла использовать DataAdapter. Для чего? Чтобы просто сложить соответствующее Command'ы. У вас процедура называетя UpdateParametr при чем тут Select и Insert.
Отладте сначала свой запрос в query analyzer. Затем просто вызывайте cmd.ExecuteNonQuery с формируемым вручную update.

Но если вы хотите использовать DataAdapter и обучить его правильно обрабатывать строки вашего DataSet. то я настоятельно рекомендую воспользоваться дата-мастером и посмотреть код формируемый им.

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
value of type 'date' cannot be converted to System.Data.SqlClient.
    #32635164
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
dacmdParametrs.SelectCommand.CommandText = "SELECT parametr_value_int, parametr_value_date, parametr_value_string, login_user, parametr_name FROM TGlobal WHERE (parametr_name like @parametr_name) AND (login_user like @login_user)"
Код: plaintext
dacmdParametrs.UpdateCommand.CommandText = "update tglobal set parametr_name=@parametr_name, parametr_value_int=@parametr_value_int, parametr_value_date=@parametr_value_date, parametr_value_string=@parametr_value_string where (parametr_name=@parametr_name) And (parametr_value_int=@parametr_value_int) And (parametr_value_date=@parametr_value_date) And (parametr_value_string=@parametr_value_string)"
Код: plaintext
dacmdParametrs.InsertCommand.CommandText = "insert into tglobal values("& drDiscount.Item("parametr_name") , ...&")"
Следующий вопрос будет по DeleteCommand...
...
Рейтинг: 0 / 0
value of type 'date' cannot be converted to System.Data.SqlClient.
    #32635176
irinka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо за помощь
...
Рейтинг: 0 / 0
value of type 'date' cannot be converted to System.Data.SqlClient.
    #32635296
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обида - не самый лучший помощник, в данного рода вопросах...
вот самый лучший помощник и друг
P.S. Мне, например, она ОЧЕНЬ помогла понять: ЧТО, ГДЕ и КОГДА происходит в VB.NET... Рекомендую... (книга не для профессионалов, то бишь для меня, посему написана ДОВОЛЬНО понятно и доходчиво). В ней описаны ВСЕ ключевые моменты присущие VB.NET (не читал бы - не ГОВОРИЛ...) Не пожалей копеечку - СЭКОНОМИШЬ НАААМНОГО БОЛЬШЕ...
...
Рейтинг: 0 / 0
value of type 'date' cannot be converted to System.Data.SqlClient.
    #32635385
irinka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что вы, я не обиделась :)
вы просто не с той интонацией прочитали :)
можете знаете такой анекдот:
ва друга разговаривают, один другому, представляешь мне сын телеграмму прислал: вышли денег, совсем обнаглел, если б он написал вышли денег, совсем др дело было бы :)
Чтобы понять его, надо прочитать первую фразу вышли денег с наглым тоном, а вторую с тоном просьбы :)
...
Рейтинг: 0 / 0
value of type 'date' cannot be converted to System.Data.SqlClient.
    #32635693
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 irinka
Добивайте начатое до конца, если заговорили про Update то и старайтесь "не слезать" с него. А то начинаете выяснять попутно другие тесно несвязанные вещи, чем только запутываете тему.

Отвечайте на все вопросы от этого зависит дальнейшее обсуждение.

А так, вам всегда рады :-)

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
value of type 'date' cannot be converted to System.Data.SqlClient.
    #32635738
irinka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Договорились :)
Код: plaintext
"update tglobal set parametr_name..."

работает в QA

Сейчас я написала так (код ниже), теперь все работает и в табл заносится
Код: 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.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
Public Sub UpdateParametr(ByRef ParametrName As String, ByRef ParametrInt As Short, ByRef ParametrDate As Date, ByRef ParametrStr As String)
         'Процедура установки параметров конфигурации окружения пользователя 
         'glbArcBeginDate - дата начала интервала просмотра записей в архиве 
         'glbArcEndDate - дата конца интервала просмотра записей в архиве 

        dacmdParametrs.SelectCommand = New System.Data.SqlClient.SqlCommand()
        dacmdParametrs.UpdateCommand = New System.Data.SqlClient.SqlCommand()
        dacmdParametrs.InsertCommand = New System.Data.SqlClient.SqlCommand()

        dacmdParametrs.InsertCommand.CommandText = "INSERT INTO TGlobal(parametr_name, login_user, parametr_value_int, parametr_value" & _
       "_date, parametr_value_string) VALUES (@parametr_name, @login_user, @parametr_val" & _
       "ue_int, @parametr_value_date, @parametr_value_string); SELECT parametr_name, log" & _
       "in_user, parametr_value_int, parametr_value_date, parametr_value_string FROM TGl" & _
       "obal WHERE (login_user = @login_user) AND (parametr_name = @parametr_name)"
        dacmdParametrs.InsertCommand.Connection = SqlConnection1
        dacmdParametrs.InsertCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@parametr_name", System.Data.SqlDbType.VarChar,  50 , "parametr_name"))
        dacmdParametrs.InsertCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@login_user", System.Data.SqlDbType.VarChar,  50 , "login_user"))
        dacmdParametrs.InsertCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@parametr_value_int", System.Data.SqlDbType.Int,  4 , "parametr_value_int"))
        dacmdParametrs.InsertCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@parametr_value_date", System.Data.SqlDbType.DateTime,  8 , "parametr_value_date"))
        dacmdParametrs.InsertCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@parametr_value_string", System.Data.SqlDbType.VarChar,  256 , "parametr_value_string"))

        dacmdParametrs.UpdateCommand.CommandText = "UPDATE TGlobal SET parametr_name = @parametr_name, login_user = @login_user, para" & _
                "metr_value_int = @parametr_value_int, parametr_value_date = @parametr_value_date" & _
                ", parametr_value_string = @parametr_value_string WHERE (login_user = @login_user)" & _
                "AND (parametr_name = @parametr_name); SELECT parametr_name, log" & _
                "in_user, parametr_value_int, parametr_value_date, parametr_value_string FROM TGl" & _
                "obal WHERE (login_user = @login_user) AND (parametr_name = @parametr_name)"
        dacmdParametrs.UpdateCommand.Connection = SqlConnection1
        dacmdParametrs.UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@parametr_name", System.Data.SqlDbType.VarChar,  50 , "parametr_name"))
        dacmdParametrs.UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@login_user", System.Data.SqlDbType.VarChar,  50 , "login_user"))
        dacmdParametrs.UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@parametr_value_int", System.Data.SqlDbType.Int,  4 , "parametr_value_int"))
        dacmdParametrs.UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@parametr_value_date", System.Data.SqlDbType.DateTime,  8 , "parametr_value_date"))
        dacmdParametrs.UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@parametr_value_string", System.Data.SqlDbType.VarChar,  256 , "parametr_value_string"))
        
        dacmdParametrs.SelectCommand.CommandText = "SELECT parametr_value_int, parametr_value_date, parametr_value_string, login_user, parametr_name FROM TGlobal WHERE (parametr_name like @parametr_name) AND (login_user like @login_user)"
        dacmdParametrs.SelectCommand.Connection = SqlConnection1
        dacmdParametrs.SelectCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@parametr_name", System.Data.SqlDbType.VarChar,  50 , "parametr_name"))
        dacmdParametrs.SelectCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@login_user", System.Data.SqlDbType.VarChar,  50 , "login_user"))

        dacmdParametrs.SelectCommand.Parameters("@parametr_name").Value = ParametrName
        dacmdParametrs.SelectCommand.Parameters("@login_user").Value = myuser

            dacmdParametrs.Fill(dscmdParametrs)

        If (dscmdParametrs.Tables("TGlobal").Rows.Count =  0 ) Then
             'Этот вариант не работает 
             'Dim drDiscount As DataRow 
             'drDiscount = dscmdParametrs.Tables("TGlobal").NewRow 
             'drDiscount.Item("parametr_name") = ParametrName 
             'drDiscount.Item("login_user") = myuser 
             'If Not IsNothing(ParametrInt) Then 
             'drDiscount.Item("parametr_value_int") = ParametrInt 
             'End If 
             'If Not IsNothing(ParametrDate) Then 
             '   drDiscount.Item("parametr_value_date") = ParametrDate 
             'End If 
             'If Not IsNothing(ParametrStr) Then 
             '    drDiscount.Item("parametr_value_string") = ParametrStr 
             'End If 
             'dscmdParametrs.Tables("TGlobal").Rows.Add(drDiscount) 
             'dacmdParametrs.Update(dscmdParametrs, "TGlobal") 
             'SqlConnection1.Close() 
             'dscmdParametrs.Clear() 

             'Рабочий вариант 
            dacmdParametrs.InsertCommand.Parameters("@login_user").Value = myuser
            dacmdParametrs.InsertCommand.Parameters("@parametr_name").Value = ParametrName
            dacmdParametrs.InsertCommand.Parameters("@parametr_value_int").Value = ParametrInt
            dacmdParametrs.InsertCommand.Parameters("@parametr_value_date").Value = ParametrDate
            dacmdParametrs.InsertCommand.Parameters("@parametr_value_string").Value = ParametrStr
            SqlConnection1.Open()
            dacmdParametrs.InsertCommand.ExecuteNonQuery()
            dscmdParametrs.Clear()

        Else
            dacmdParametrs.UpdateCommand.Parameters("@login_user").Value = myuser
            dacmdParametrs.UpdateCommand.Parameters("@parametr_name").Value = ParametrName
             'If Not IsNothing(ParametrInt) Then 
             'dscmdParametrs.Tables(0).Rows(0).Item("parametr_value_int") = ParametrInt 
            dacmdParametrs.UpdateCommand.Parameters("@parametr_value_int").Value = ParametrInt
             'End If 
             'If Not IsNothing(ParametrDate) Then 
             'dscmdParametrs.Tables(0).Rows(0).Item("parametr_value_date") = ParametrDate 
            dacmdParametrs.UpdateCommand.Parameters("@parametr_value_date").Value = ParametrDate
             'End If 
             'If Not IsNothing(ParametrStr) Then 
             'dscmdParametrs.Tables(0).Rows(0).Item("parametr_value_string") = ParametrStr 
            dacmdParametrs.UpdateCommand.Parameters("@parametr_value_string").Value = ParametrStr
             'End If 

            SqlConnection1.Open()
            dacmdParametrs.UpdateCommand.ExecuteNonQuery()
            dscmdParametrs.Clear()

        End If
        SqlConnection1.Close()
    End Sub
...
Рейтинг: 0 / 0
value of type 'date' cannot be converted to System.Data.SqlClient.
    #32635764
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это вопрос или утверждение ? :)
А вот с этим

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
           'Этот вариант не работает 
             'Dim drDiscount As DataRow 
             'drDiscount = dscmdParametrs.Tables("TGlobal").NewRow 
             'drDiscount.Item("parametr_name") = ParametrName 
             'drDiscount.Item("login_user") = myuser 
             'If Not IsNothing(ParametrInt) Then 
             'drDiscount.Item("parametr_value_int") = ParametrInt 
             'End If 
             'If Not IsNothing(ParametrDate) Then 
             '   drDiscount.Item("parametr_value_date") = ParametrDate 
             'End If 
             'If Not IsNothing(ParametrStr) Then 
             '    drDiscount.Item("parametr_value_string") = ParametrStr 
             'End If 
             'dscmdParametrs.Tables("TGlobal").Rows.Add(drDiscount) 
             'dacmdParametrs.Update(dscmdParametrs, "TGlobal") 
             'SqlConnection1.Close() 
            'dscmdParametrs.Clear()

Вообще ничего не понял. Вы путаете понятия параметров команды и строку из дататейбла.

Magnus
...
Рейтинг: 0 / 0
value of type 'date' cannot be converted to System.Data.SqlClient.
    #32635910
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё я правильно понял в Вашей интонации...
А, в финале:
1. Моё предложение, по поводу приобретения достойного друга в виде книги, остаётся в силе...
2. Код работает, вот и чудненько, вот и замечательно (МОЖЕТЕ... сами... когда захотите)
3. Не обижайтесь, но, в сущности, вы повторили програмно DataAdapter со всеми командами (исключая DeleteCommand), который можно было создать визуальными средствами "мастерами", подкорректировав необходимое... Посему, убедительно рекомендую, не пропускать мимо ушей пункт Nr 1.
...
Рейтинг: 0 / 0
value of type 'date' cannot be converted to System.Data.SqlClient.
    #32636192
irinka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор
Magnus23

Это было утверждение :)
я просто копирнула код, а для себя в комментариях написала что работает, что нет, чтобы потом подкорректировать и попробывать др варианты.

автор
vladgrig

Совет про книгу я вовсе не пропустила, в ближайшее время ее приобрету, спасибо :)

"Всё я правильно понял в Вашей интонации..."
:) ну если вы так считаете... :)
...
Рейтинг: 0 / 0
value of type 'date' cannot be converted to System.Data.SqlClient.
    #32636601
irinka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vladgrig

уже заказала себе книжку :)
обещают в пределах недели доставить
...
Рейтинг: 0 / 0
value of type 'date' cannot be converted to System.Data.SqlClient.
    #32636643
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
irinka
уже заказала себе книжку :)
обещают в пределах недели доставить

Еще закажите книжку по T-SQL, так как то что у вас сейчас получилось, лучше сделать в хранимой процедуре на сервере :-)

Тоесть будет хранимая процедура принимающая эти значения и выполняющая либо Update, либо Insert. Я такие вещи тоже иногда пишу, особенно когда структура БД, сильно отличается от структуры DataSet.

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
value of type 'date' cannot be converted to System.Data.SqlClient.
    #32637651
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда чего то ОЧЕНЬ много - это тоже, не есть ХОРОШО... Конечно, чем больше книг, тем лучше... Только моё мнение, "не забивайте девушке голову сложными задачами, а дайте возможность разобраться по порядку. Irinka, осваивайте VB.NET (не пожалеете), и не отвлекайтесь на различные методы "хранимые процедуры и т.д." (читал на форуме: "Как лучше?... Лучше делать так как Вам удобно, а остальное - субъективное мнение каждого программера..."). Если не получится в .NET, вот тогда и изучайте T-SQL с хранимыми процедурами.
P.S. Хоть я и не программист - но это тоже моё субъективное мнение...

To Sa
Я Вас не узнаю... Такой толковый и обстоятельный человек... Раз уж завели разговор про книгу - не будтье ОБСТРАКТНЫ - дайте ссылочку... (а, то мне стало жуть как интересно, какой источник Вы имеете ввиду: "книг то МНОООГО, а какую стоит читать - вот ВОПРОС?"...)
...
Рейтинг: 0 / 0
value of type 'date' cannot be converted to System.Data.SqlClient.
    #32637673
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vladgrigКогда чего то ОЧЕНЬ много - это тоже, не есть ХОРОШО... Конечно, чем больше книг, тем лучше... Только моё мнение, "не забивайте девушке голову сложными задачами, а дайте возможность разобраться по порядку. Irinka, осваивайте VB.NET (не пожалеете), и не отвлекайтесь на различные методы "хранимые процедуры и т.д." (читал на форуме: "Как лучше?... Лучше делать так как Вам удобно, а остальное - субъективное мнение каждого программера..."). Если не получится в .NET, вот тогда и изучайте T-SQL с хранимыми процедурами.
P.S. Хоть я и не программист - но это тоже моё субъективное мнение...

IMXO. В корне неверное мнение. Все как раз наоборот. В начале нужно научится делать "правильно", изучить рекомендуемые методики и практики.
И уже получив собственный отрицательный или положительный опыт их использования, выработать свои. Но не вместо, а в дополнение.
Ибо эти практики и методики(большинство их) выработаны опытом тысяч пргограммеров до нас , а не написаны с потолка.
Получаться должно в обоих "местах" :). Ибо программер который хочет писать "client/server" и не знает что и где использовать - не нужен(скрипач :).
Еще и потому что с ним неудобно будет работать другим, а гениев работающих водиночку не так уж много.
...
Рейтинг: 0 / 0
value of type 'date' cannot be converted to System.Data.SqlClient.
    #32637683
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще то у нас на Главном Форуме (ГФ) хватает спецов по MS SQL которые толковее посоветуют литературу.

Также не могу порадовать ссылкой на книжку на русском языке, так как предпочитаю читать в оригинале.

Вот то на что я обратил внимание (это не только голый T-SQL):

Inside Microsoft SQL Server 2000 by Kalen Delaney
The Guru's Guide to .... by Ken Henderson
Advanced Transact-SQL for SQL Server by Itzik Ben-Gan
Transact-SQL Cookbook by Jonathan Gennick

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
value of type 'date' cannot be converted to System.Data.SqlClient.
    #32637728
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To Sa
Спасибо, за источники...

To Magnus23
авторИбо эти практики и методики(большинство их) выработаны опытом тысяч пргограммеров до нас , а не написаны с потолка.
В своё время, огромное количество людей, считали, что солнце крутится вокруг земли (а, как теперь, всё повернулось???). Видно наработанные методы мешали...

авторЕще и потому что с ним неудобно будет работать другим
Если Вы считаете "ЧТО ТО" очень правильным, ТО ЭТО "ЧТО ТО" ДОЛЖНО БЫТЬ ЭТАЛОНОМ ДЛЯ ВСЕХ???

авторВ начале нужно научится делать "правильно", изучить рекомендуемые методики и практики.
P.S. Кстати, я наверное не зря посоветовал человеку книгу...
...
Рейтинг: 0 / 0
value of type 'date' cannot be converted to System.Data.SqlClient.
    #32637745
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВ своё время, огромное количество людей, считали, что солнце крутится вокруг земли (а, как теперь, всё повернулось???). Видно наработанные методы мешали...
Одно дело - наука, а другое - работа, если каждый будет свою половину дома строить по-своему то Петровичу крышу точно не прицепить. Неужели не читали эту притчу? :) Могу поискать.


Если Вы считаете "ЧТО ТО" очень правильным, ТО ЭТО "ЧТО ТО" ДОЛЖНО БЫТЬ ЭТАЛОНОМ ДЛЯ ВСЕХ???
см. выше.
Ваши слова?
vladgrigЛучше делать так как Вам удобно
Вы же сами себе уже противоречите.
Я не за узурпацию а за консенсус, к которому должна прийти команда если хочет работать вместе. И этого взаимпопонимания гораздо легче достичь базируясь на одном из стандартов, чем вырабатывая свой с нуля из-за того что всем удобно по-своему.

P.S. Кстати, я наверное не зря посоветовал человеку книгу...
Это есть гут. Я заметил :), мои комментарии относились только к последнему посту.




Magnus
...
Рейтинг: 0 / 0
value of type 'date' cannot be converted to System.Data.SqlClient.
    #32637754
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vladgrig
В своё время, огромное количество людей, считали, что солнце крутится вокруг земли (а, как теперь, всё повернулось???). Видно наработанные методы мешали...

OFFTOP:
У программистов в этом плане как-то все точнее и строже. Существуют также такие понятия как best practice, patterns and etc. То есть решения проверенные временем, успешные проекты и т.д., и с ними надо как минимум ознакомиться . Это как аналитический обзор, обязательный элемент любой научной работы, необходимый для того, чтобы двигаться дальше.

На этом предлагаю в этой теме больше не оффтопить, а то irinka обидеться за тот балаган, который мы тут развели.

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
43 сообщений из 43, показаны все 2 страниц
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / value of type 'date' cannot be converted to System.Data.SqlClient.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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