2013-12-20 3 views
0

Я новичок в программировании и я работаю над проектом с использованием SQL и VB в Visual Studio 2013. Одна из ошибок, которые меня в тупик выглядит следующим образом:Неизвестное исключение System.Data.SqlClient.SqlException

Imports System.Data 
Imports System.Data.SqlClient 

Эта ошибка возникает в следующей строке:

da.Fill(ds) 

Под дополнительной информацией входит следующее сообщение:

Дополнительная информация: Недопустимое имя объекта «Жалобы».

У меня есть Form с именем «Жалобы» Что мне не хватает? Спасибо за любую помощь, которую вы можете предоставить! Вы можете найти код ниже:

Public Class DButil 
    Public cs As String 

    Public Function GetDataView(ByVal sql As String) As DataView 
     Dim ds As New DataSet 
     Dim da As New SqlDataAdapter(sql, cs) 

     da.Fill(ds) 

     Dim dv As New DataView(ds.Tables(0)) 
     Return dv 
    End Function 

    Public Sub New() 
     Dim strPath As String = Replace(System.AppDomain.CurrentDomain.BaseDirectory, "bin\debug", "cms.mdf") 
     cs = "Data Source=(LocalDB)\v11.0;" 
     cs += "AttachDbFilename='C:\Users\Sean\Documents\Visual Studio 2013\Projects\349591\349591\cms.mdf';Integrated Security=True" 
     cs += "Integrated Security=True;Connect Timeout=30" 
    End Sub 

End Class 
+1

«Я имеют форму под названием «Жалобы» »-? Это относится к таблице под названием «Жалобы» ... –

+1

Что находится в переменной «sql»? – NigelK

+0

Проблема заключается в строке, переданной как команда sql для DataAdapter. Показать, что строка (sql) – Steve

ответ

2

Ваш комментарий

Private Sub LoadGrid() 
    Dim sql As String sql = "SELECT Table.ComplaintID, Complaint.OpenDate, Status.StatusTitle, " 
    sql += "Table.Location, Table.Description FROM Table " 
    sql += " INNER JOIN Status ON Table.StatusID = Status.StatusID ORDER BY Table.OpenDate DESC" 
    grdComplaints.DataSource = DB.GetDataView(sql) 
End Sub 

Вы можете использовать поле с именем OpenDate из таблицы с именем Complaint, но эта таблица не указана в пункте заявления SQL JOIN. Вы должны указать эту таблицу в пункте JOIN (или удалить столбец из списка SELECT столбцов)

Учитывая фактические имена полей, возможно, вам необходимо установить связь между Table.OpenDate и Complaint.OpenDate

Dim sql As String sql = "SELECT Table.ComplaintID, Complaint.OpenDate, Status.StatusTitle, " 
sql += "Table.Location, Table.Description FROM Table " 
sql += "INNER JOIN Status ON Table.StatusID = Status.StatusID " 
sql += "INNER JOIN Complaint ON Table.OpenDate = Complaint.OpenDate " 
sql += "ORDER BY Table.OpenDate DESC" 
Смежные вопросы