Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Изменения в базе через DataGridView 
:(
    Опции темы
grower
Дата 25.5.2007, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 25.5.2007

Репутация: нет
Всего: нет



Здравствуйте. Я создаю в визарде DataSet1 и настраиваю его на простейшую таблицу (три колонки, одна из них первичный ключ). В файле DataSet1.Designer.cs создаються команды только SELECT и INSERT , а UPDATE и DELETE нету , почему так, как их добавить ?

(в настройках отмечено "Generate Insert, Update and Delete statments" и "Create methods to send updates directly to the database (GenerateDBDirectMethods)")

При вызове :
Код

mapObjectsTableAdapter.Update(dataSet1.MapObjects);

Ошибка :
Update requires a valid UpdateCommand(DeleteCommand) when passed DataRow collection with modified(deleted) rows.

(а INSERT проходит нормально)

Почему автоматически не создаются команды на UPDATE и DELETE ? (первичный ключ визард определяет)
И ещё . если зайти в конструктор датасета, EditDataSet with Designer -> Configure ... и нажать Finish (не чего не меняя), то потом пропадает и INSERT , остаётся только SELECT . 
PM MAIL   Вверх
mr.DUDA
Дата 26.5.2007, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 8
Всего: 232



Какая база данных ?


--------------------
user posted image
PM MAIL WWW   Вверх
stashe
Дата 8.6.2008, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 153
Регистрация: 5.1.2007
Где: Донецк

Репутация: нет
Всего: 1



Аналогично, база OleDB
PM   Вверх
jonie
Дата 8.6.2008, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 8
Всего: 118



это не база, а провайдер.


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Iganga
Дата 9.6.2008, 22:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 3.12.2007

Репутация: 1
Всего: 1



Да фигарьте в ручную)))

Ща покажу и все проблемы решатся)))

Код


Imports System
Imports System.Collections
Imports System.ComponentModel
Imports System.ComponentModel.Design
Imports System.Diagnostics
Imports System.Drawing
Imports System.Drawing.Design
Imports System.Data
Imports System.Text
Imports System.Windows.Forms
Imports System.Windows.Forms.Design
Imports System.Data.Sql
Imports System.Data.SqlClient

Public Class Stuff
    Private dsUchen As New DataSet
    Private connection As New SqlConnection("Initial catalog =School;Trusted_connection = Yes")
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim cmd As New SqlCommand("Select*from School_Stuff", connection)
        Dim adapter As New SqlDataAdapter(cmd)
        Dim ds As DataSet = dsUchen
        adapter.Fill(ds, "School_Stuff")
        DataGridView1.DataSource = ds.Tables("School_Stuff").DefaultView
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim ds As DataSet = dsUchen
        Dim adapter As New SqlDataAdapter()
        If ds.HasChanges Then
            'Dim connection As New SqlConnection("Initial catalog =School;Trusted_connection = Yes")
            Try
                connection.Open()
                Dim numer As SqlParameter
                Dim dir As SqlParameter
                Dim zav As SqlParameter
                Dim bibl As SqlParameter
                Dim uchi As SqlParameter
                Dim stor As SqlParameter
                Dim ubor As SqlParameter
                Dim povor As SqlParameter

                'Insert COmmand
                '_____________________________________________
                Dim cmd As New SqlCommand("Insert into School_Stuff values(@number,@dir,@zav,@bibl,@uchit,@stor,@ubor,@povor)", connection) 'Команда на выполнение
                numer = cmd.Parameters.Add("@number", SqlDbType.Int, 15, "Number")
                dir = cmd.Parameters.Add("@dir", SqlDbType.Int, 14, "direktor")
                zav = cmd.Parameters.Add("@zav", SqlDbType.Int, 15, "zavuch")
                bibl = cmd.Parameters.Add("@bibl", SqlDbType.Int, 15, "Bibliotekar")
                uchi = cmd.Parameters.Add("@uchit", SqlDbType.Int, 14, "uchtelya")
                stor = cmd.Parameters.Add("@stor", SqlDbType.Int, 14, "Storoj")
                ubor = cmd.Parameters.Add("@ubor", SqlDbType.Int, 15, "Uborshica")
                povor = cmd.Parameters.Add("@povor", SqlDbType.Int, 15, "povara")
                numer.SourceVersion = DataRowVersion.Current
                dir.SourceVersion = DataRowVersion.Current
                zav.SourceVersion = DataRowVersion.Current
                bibl.SourceVersion = DataRowVersion.Current
                uchi.SourceVersion = DataRowVersion.Current
                stor.SourceVersion = DataRowVersion.Current
                ubor.SourceVersion = DataRowVersion.Current
                povor.SourceVersion = DataRowVersion.Current
                adapter.InsertCommand = cmd
                adapter.Update(ds, "School_Stuff") ' Обновление БД
            Catch ex As Exception
                MessageBox.Show(ex.ToString)
            End Try
        End If
    End Sub

    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Dim ds As DataSet = dsUchen
        Dim adapter As New SqlDataAdapter()

        'Dim connection As New SqlConnection("Initial catalog =School;Trusted_connection = Yes")
        Try
            connection.Open()
            Dim numer As SqlParameter
            Dim dir As SqlParameter
            Dim zav As SqlParameter
            Dim bibl As SqlParameter
            Dim uchi As SqlParameter
            Dim stor As SqlParameter
            Dim ubor As SqlParameter
            Dim povor As SqlParameter

            'Insert COmmand
            '_____________________________________________
            Dim cmd As New SqlCommand("Update School_Stuff set number = @number,direktor=@dir,zavuch=@zav,bibliotekar = @bibl,Uchitelya=@ucht,Storoj=@stor,Uborshica=@ubor,Povara=@povor", connection) 'Команда на выполнение
            numer = cmd.Parameters.Add("@number", SqlDbType.Int, 15, "Number")
            dir = cmd.Parameters.Add("@dir", SqlDbType.Int, 14, "direktor")
            zav = cmd.Parameters.Add("@zav", SqlDbType.Int, 15, "zavuch")
            bibl = cmd.Parameters.Add("@bibl", SqlDbType.Int, 15, "Bibliotekar")
            uchi = cmd.Parameters.Add("@uchit", SqlDbType.Int, 14, "uchtelya")
            stor = cmd.Parameters.Add("@stor", SqlDbType.Int, 14, "Storoj")
            ubor = cmd.Parameters.Add("@ubor", SqlDbType.Int, 15, "Uborshica")
            povor = cmd.Parameters.Add("@povor", SqlDbType.Int, 15, "povara")
            numer.SourceVersion = DataRowVersion.Current
            dir.SourceVersion = DataRowVersion.Current
            zav.SourceVersion = DataRowVersion.Current
            bibl.SourceVersion = DataRowVersion.Current
            uchi.SourceVersion = DataRowVersion.Current
            stor.SourceVersion = DataRowVersion.Current
            ubor.SourceVersion = DataRowVersion.Current
            povor.SourceVersion = DataRowVersion.Current
            adapter.UpdateCommand = cmd
            adapter.Update(ds, "School_Stuff") ' Обновление БД
        Catch ex As Exception
            MessageBox.Show(ex.ToString)
        End Try

    End Sub

    Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
        Dim adapter As New SqlDataAdapter()
        Dim ds As DataSet = dsUchen
        Dim delParam As SqlParameter
        Dim cmdD As New SqlCommand()
        cmdD.CommandText = "delete from School_Stuff where Tab_Number = @number"
        delParam = cmdD.Parameters.Add("@number", SqlDbType.Int, 15, "Tab_number")
        delParam.SourceVersion = DataRowVersion.Current
        cmdD.Connection = connection
        adapter.DeleteCommand = cmdD
        adapter.Update(ds, "School_Stuff")
    End Sub

    Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
        Dim view As New viewtbl
        view.Show()
    End Sub

    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
        Me.Hide()
    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        Application.Exit()
    End Sub

   
    Private Sub Stuff_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim cmd As New SqlCommand("Select*from School_Stuff", connection)
        Dim adapter As New SqlDataAdapter(cmd)
        Dim ds As DataSet = dsUchen
        adapter.Fill(ds, "School_Stuff")
        DataGridView1.DataSource = ds.Tables("School_Stuff").DefaultView
    End Sub
End Class



Радуйтесь, я очень долго с ентим парился
PM MAIL ICQ   Вверх
vretsky
Дата 10.6.2008, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 29.10.2007

Репутация: нет
Всего: нет



действительно создавай ДЕЛИТ и АПДЕЙТ команды руками, и париться по мне там не с чем, прямо в визарде легко (интуитивно понятно) создаются параметры, а руками надо написать только SQL команду. (в 2005 студии)
PM MAIL   Вверх
vretsky
Дата 10.6.2008, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 29.10.2007

Репутация: нет
Всего: нет



тем более команды на изменение созданные в визарде как правило все равно менять приходиться (как минимум проверять рекомендую)
PM MAIL   Вверх
Magnifico
Дата 10.6.2008, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 23.1.2008
Где: Московская област ь

Репутация: 2
Всего: 17



когда создаешь адаптер при выборе команды ставь галочку не все записи (select * from table),
а галочки для каждого поля по отдельности , а на следующем шаге внимательно смотри
сформировались команды или нет 


--------------------
Всё  в  порядке   -   спасибо  зарядке  !
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.1085 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.