powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Изменение источника данных и перезаливка данных в dataSet
3 сообщений из 3, страница 1 из 1
Изменение источника данных и перезаливка данных в dataSet
    #38678867
tasha klemer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дорогие форумчане , необходима помощь в разьяснение по некоторым вопросам, подключение к источнику данных, обновление его и отображение новых данных на контролах.

Вообщем начну.....
1) в моем проекте уже есть DataSet моей баы, необхходимо ли мне создавать новый орегинальный ds ?
На данный момент у меня орагнизовано след. образом.
BuildingdataSourse- основной ds, который я вижу проекте
для форм мне необходимы некоторые выборки из нескольких таблиц. для этого я создаю еше один неорегинальный ds и уже в него направляю все результаты выборок. Здесь же у меня возникает вопрос, ни могу ли я результаты выборок направлять в основной ds?(попытки не увенчались успехом)
2) необходимов ListBox отобразить список фамилий сотрудников, и тут же иметь возможность вставки и удаления записей , но результат действий должен отображаться вListBox сразу же.... делаю это следующим образом

Код: vbnet
1.
2.
3.
4.
5.
    Public Shared adapter As SqlDataAdapter
    Public Shared cmd As New SqlCommand()
    Public Shared ds As New DataSet
    Public Shared WorkerState As String
    Private Property Command As SqlCommand




Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Private Sub fBuild_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
          ds.Clear()
        cmd.CommandText = "SELECT dbo.TObjectConstr.Id_Obj, dbo.TObjectConstr.NumObj, dbo.TWorker.id_worker, dbo.TWorker.id_WorkerfromDic, dbo.vDir_Worker.Name1, dbo.vDir_Worker.Name3, " & _
        "dbo.vDir_Worker.Name2, dbo.vDir_Worker.FIO, dbo.vDir_Worker.NameDep, dbo.vDir_Worker.NameInsp, dbo.vDir_Worker.NamePost, " & _
        "dbo.vDir_Worker.id_DWorker " & _
         "FROM dbo.TObjectConstr INNER JOIN " & _
                      "dbo.TWorker ON dbo.TObjectConstr.Id_Obj = dbo.TWorker.id_Obj INNER JOIN " & _
                       "dbo.vDir_Worker ON dbo.TWorker.id_WorkerfromDic = dbo.vDir_Worker.id_DWorker " & _
                       " WHERE (dbo.TObjectConstr.Id_Obj = " + CStr(fBuildAll.ID_Obj) + ")"

        adapter = New SqlDataAdapter(cmd.CommandText, fLogin.connectionString)

        Dim dtAdpterWorkerAll As New DataTable("AdapterWorkerAll")

        adapter.Fill(ds, "AdapterWorkerAll")
'вручную прописываю данные для биндига
        lbWorkerFromObj.DataSource = ds.Tables("AdapterWorkerAll")
        lbWorkerFromObj.DisplayMember = "FIO"
        lbWorkerFromObj.ValueMember = "id_worker"
        VWorkerAllColumnBindingSource.Filter = "Id_Obj=" + CStr(fBuildAll.ID_Obj)
        AssemblyofCharacteristics()
    End Sub



данные из базы отображаются без проблем


ВОт код кнопки удаления записи


Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
        WorkerState = "Delete"
        Dim pIdObj, pIdWorkerfSelect As SqlParameter
        ' Add the parameters for the InsertCommand.
        Command = New SqlCommand("Delete from TWorker where id_Obj=@pIdObj and id_WorkerfromDic=@pIdWorkerfSelect", fLogin.connection)
        Command.Parameters.Add("@pIdObj", SqlDbType.Int, 5, "pIdObj").Value = fBuildAll.ID_Obj
        Command.Parameters.Add("@pIdWorkerfSelect", SqlDbType.Int, 3, "pIdWorkerfSelect").Value = CInt(Me.lbWorkerFromObj.SelectedValue)
        adapter.DeleteCommand = Command
        adapter.DeleteCommand.ExecuteNonQuery()
        adapter.Fill(ds.Tables("AdpterWorkerAll"))
End Sub





и выходит ошибка на строке adapter.Fill(ds.Tables("AdpterWorkerAll"))
"Значение не может быть неопределенным."
Удаление данных тоже не происходит.
где моя ошибка???

мне даже не понятно поечму не удаляет запись из базы, потом что добавление отрабатывает в том плане что запись новая добавляется

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
 If fBuild.WorkerState = "Add" Then
            Command = New SqlCommand("INSERT INTO TWorker (id_Obj, id_WorkerfromDic) Values (@pIdObj, @pIdWorkerfSelect)", fLogin.connection)
            Command.Parameters.Add("@pIdObj", SqlDbType.Int, 5, "pIdObj").Value = fBuildAll.ID_Obj
            Command.Parameters.Add("@pIdWorkerfSelect", SqlDbType.Int, 3, "pIdWorkerfSelect").Value = IdWorkerfromSelect
            fBuild.adapter.InsertCommand = Command
            fBuild.adapter.InsertCommand.ExecuteNonQuery()
            fBuild.adapter.Fill(fBuild.ds.Tables("AdapterWorkerAll"))

        End If




Буду очень признательна за разьяснения
...
Рейтинг: 0 / 0
Изменение источника данных и перезаливка данных в dataSet
    #38680509
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
tasha klemerи выходит ошибка на строке adapter.Fill(ds.Tables("AdpterWorkerAll"))
"Значение не может быть неопределенным."
Может быть поэтому?

Код: c#
1.
2.
3.
adapter.DeleteCommand = Command
        adapter.DeleteCommand.ExecuteNonQuery()
        adapter.Fill(ds.Tables("AdpterWorkerAll"))
...
Рейтинг: 0 / 0
Изменение источника данных и перезаливка данных в dataSet
    #38681808
tasha klemer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
проблема была в том что я для уменьшения количество элементов и переменых хотела использовать один адаптер при работе с разными таблицами, что оказалось не правильным. для данной выборки я создала отдельный экземпляр адаптера adWorkerAll. обновляла и перезаливала данные уже через adWorkerAll.

Код: vbnet
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.
cmd.CommandText = "SELECT dbo.TObjectConstr.Id_Obj, dbo.TObjectConstr.NumObj, dbo.TWorker.id_worker, dbo.TWorker.id_WorkerfromDic, dbo.vDir_Worker.Name1, dbo.vDir_Worker.Name3, " & _
        "dbo.vDir_Worker.Name2, dbo.vDir_Worker.FIO, dbo.vDir_Worker.NameDep, dbo.vDir_Worker.NameInsp, dbo.vDir_Worker.NamePost, " & _
        "dbo.vDir_Worker.id_DWorker " & _
         "FROM dbo.TObjectConstr INNER JOIN " & _
                      "dbo.TWorker ON dbo.TObjectConstr.Id_Obj = dbo.TWorker.id_Obj INNER JOIN " & _
                       "dbo.vDir_Worker ON dbo.TWorker.id_WorkerfromDic = dbo.vDir_Worker.id_DWorker " & _
                       " WHERE (dbo.TObjectConstr.Id_Obj = " + CStr(fBuildAll.ID_Obj) + ")"

       adWorkerAll = New SqlDataAdapter(cmd.CommandText, fLogin.connectionString)


        Dim dtAdpterWorkerAll As New DataTable("AdapterWorkerAll")
        adWorkerAll.Fill(ds, "AdapterWorkerAll")


 Command = New SqlCommand("Delete from TWorker where id_Obj=@pIdObj and id_Worker=@pIdWorkerfSelect", fLogin.connection)
        Command.Parameters.Add("@pIdObj", SqlDbType.Int, 5, "pIdObj").Value = fBuildAll.ID_Obj
        Command.Parameters.Add("@pIdWorkerfSelect", SqlDbType.Int, 3, "pIdWorkerfSelect").Value = CInt(Me.lbWorkerFromObj.SelectedValue)
        adWorkerAll.DeleteCommand = Command
        adWorkerAll.DeleteCommand.ExecuteNonQuery()

        lbWorkerFromObj.DataSource = ds.Tables("AdapterWorkerAll")
        adWorkerAll.Update(ds, "AdapterWorkerAll")
        ds.Tables("AdapterWorkerAll").Clear()
        adWorkerAll.Fill(ds, "AdapterWorkerAll") 
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Изменение источника данных и перезаливка данных в dataSet
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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