|
динамически подсунуть dbtype
|
|||
---|---|---|---|
#18+
Подмогните по шарпу, плз. Пишу с телефона, поэтому теги использовать не могу, постараюсь просто текстом. Вобщем задачка такая: есть табличка с колонками dt и есть массив sqlparameter[] par. Надо перебрать колонки dt и параметры в par. По ходу перебора если имя колонки совпадёт с именем параметра - сунуть в этот параметр значение из этой колонки. Всё просто вроде бы, но никак не получается при присвоении рar[i].value=dr[columnname], где dr - datarow in dt сконвертить dr[columnname] под тип par[i].dbtype, который заранее неизвестен и определяется по ходу перебора массива par. Подскажите как в конвертации использовать динамический тип данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2015, 17:56 |
|
динамически подсунуть dbtype
|
|||
---|---|---|---|
#18+
Что-то вроде этого Код: c# 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2015, 18:19 |
|
динамически подсунуть dbtype
|
|||
---|---|---|---|
#18+
PA Convert.ChangeType там надо Type, а мне надо DbType, потому как Type от par[i] будет SqlParameter ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2015, 18:24 |
|
динамически подсунуть dbtype
|
|||
---|---|---|---|
#18+
sposadPA Convert.ChangeType там надо Type, а мне надо DbType, потому как Type от par[i] будет SqlParameter Я не понимаю проблему с типами. sqlparameter[...].value - объект dt.Row[...][...] - объект Какие проблемы с приведением? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2015, 18:27 |
|
динамически подсунуть dbtype
|
|||
---|---|---|---|
#18+
Cat2Что-то вроде этого Код: c# 1. 2.
млин, да я ж пишу, что как перебрать и присвоить я знаю, мне надо присваиваемое значение сконвертить под тот тип данных, который определится в параметре по ходу. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2015, 18:27 |
|
динамически подсунуть dbtype
|
|||
---|---|---|---|
#18+
sposadмлин, да я ж пишу, что как перебрать и присвоить я знаю, Cat2Я не понимаю проблему с типами. sqlparameter[...].value - объект dt.Row[...][...] - объект Какие проблемы с приведением? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2015, 18:27 |
|
динамически подсунуть dbtype
|
|||
---|---|---|---|
#18+
Cat2sposadпропущено... там надо Type, а мне надо DbType, потому как Type от par[i] будет SqlParameter Я не понимаю проблему с типами. sqlparameter[...].value - объект dt.Row[...][...] - объект Какие проблемы с приведением?ты думаешь, что этой проблемы не будет? Я вообще привык с шарпе к малине прибавлять малину, не надеясь, что она сама своих опознаша. В вб мож и прокатило бы, а тут скорее всего будут проблемы, особенно где дата попадётся. Хоспаде, до чего же говённый инет у мтс ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2015, 18:35 |
|
динамически подсунуть dbtype
|
|||
---|---|---|---|
#18+
sposadВ вб мож и прокатило бы, а тут скорее всего будут проблемы, особенно где дата попадётся. В параметрах sqlCommand тоже прокатывает. Разумеется если только в параметре не стоит тип Дата, а в соответствующем поле таблицы - "Осень" Причем вот такой кусок Код: c# 1. 2. 3.
Не вызовет ошибки во время выполнения, ошибка будет только при попытке выполнить sqlCommand. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2015, 21:10 |
|
динамически подсунуть dbtype
|
|||
---|---|---|---|
#18+
Cat2sposadВ вб мож и прокатило бы, а тут скорее всего будут проблемы, особенно где дата попадётся. В параметрах sqlCommand тоже прокатывает. Разумеется если только в параметре не стоит тип Дата, а в соответствующем поле таблицы - "Осень" Причем вот такой кусок Код: c# 1. 2. 3.
Не вызовет ошибки во время выполнения, ошибка будет только при попытке выполнить sqlCommand.попробую, но всё равно, даже если получится, вопрос интересный, торкнуло меня, хочу разобраться, может где понадобиться. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2015, 21:47 |
|
динамически подсунуть dbtype
|
|||
---|---|---|---|
#18+
sposad, SqlParameter сам подбирает DbType по фактическому типу переданного значения, который редко когда бывает именно object: Код: c# 1. 2. 3. 4. 5. 6.
- догадайтесь с трех раз, что выведет вышеприведенное. Указывать явно тип параметра требуется достаточно редко - например, когда нужно передать Size параметра, или задать ParameterDirection, или если параметр - табличный тип. sposadвопрос интересный, торкнуло меня, хочу разобраться, может где понадобиться. Просто линейный код по соответствию тип CLR - DbType. Посмотрите, например, исходники Dapper - там примерно так и делается: Код: c# 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2015, 06:05 |
|
динамически подсунуть dbtype
|
|||
---|---|---|---|
#18+
P.S. Таблицу соответствия типов см. здесь: https://msdn.microsoft.com/en-us/library/cc716729(v=vs.110).aspx ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2015, 06:09 |
|
динамически подсунуть dbtype
|
|||
---|---|---|---|
#18+
Сон Веры Павловны, спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2015, 09:12 |
|
|
start [/forum/topic.php?fid=20&msg=38860981&tid=1401986]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
113ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 213ms |
0 / 0 |