2013-04-19 1 views
1

나는 SQL Server 데이터베이스가 있고 난 그냥 새 테이블을 추가 한 -개체 이름이 잘못에서 LINQ - 투 - SQL

CREATE TABLE [dbo].[my_table](
    [my_primary_key] [int] NOT NULL, 
    [my_data_value] [int] NULL, 
PRIMARY KEY CLUSTERED 
(
    [my_primary_key] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 
) ON [PRIMARY] 

내가으로 비주얼 웹 개발자의 데이터베이스 탐색기에서 새 테이블을 드래그 my_schema.dbml 디자인 창. 이 때문에 나를 위해 my_schema.vb 파일을 만듭니다 : -

테이블의 일부 흔적은 XML에 나타나지 않지만

Partial Class my_schemaDataContext 

End Class 
: -

<?xml version="1.0" encoding="utf-8"?><Database Name="my_schema" Class="my_schemaDataContext" xmlns="http://schemas.microsoft.com/linqtosql/dbml/2007"> 
    <Connection Mode="AppSettings" ConnectionString="Data Source=MYPC;Initial Catalog=my_schema;Integrated Security=True" SettingsObjectName="MyProgram.My.MySettings" SettingsPropertyName="my_schemaConnectionString" Provider="System.Data.SqlClient" /> 
    <Table Name="dbo.my_table" Member="my_tables"> 
    <Type Name="my_table"> 
     <Column Name="my_primary_key" Type="System.Int32" DbType="Int NOT NULL" IsPrimaryKey="true" CanBeNull="false" /> 
     <Column Name="my_data_value" Type="System.Int32" DbType="Int" CanBeNull="true" /> 
    </Type> 
    </Table> 
</Database> 

나는 다음과 같은 테이블에 행을 삽입하려고 : -

Try 
    db = New my_schemaDataContext("Integrated Security=SSPI; ") 
    Dim new_row As my_table 
    new_row = New my_table 
    new_row.my_primary_key = 1 
    new_row.my_data_value = 1 
    db.my_tables.InsertOnSubmit(new_row) 
    db.SubmitChanges() 
Catch ex As Exception 
    ' do something 
End Try 

이 결과는 Invalid Object Name 'dbo.my_table입니다.

아마도 나는 어딘가에서 스키마 이름을 잼해야하지만 어떻게해야하는지 알 수 없습니다. 연결 문자열에 Initial Catalogue=my_schema;을 추가하려고 시도했지만 이로 인해 Keyword Not Supported: Initial Catalogue 예외가 발생했습니다.

내가 시도 할 수있는 다른 방법이 있습니까? (필자는 동일한 스키마에서 다른 테이블을 시도한 결과 동일한 결과를 얻었으므로 문제가되는 임의의 오타가 생길 가능성을 배제하고 있음을 유의해야합니다.)

답변

7

연결 문자열이 잘못되었습니다. 또한 Catalogue의 철자는 Catalog으로해야합니다.

+1

신음. 그게 전부 야. 'Catalogue'를'Catalog'로 수정하면 그것을 수정합니다. 감사. –

0

DataContext의 생성자는 연결 문자열을 사용합니다.

"Integrated Security=SSPI; " 

유효한 연결 문자열로 보이지 않습니다.

아무 것도 입력하지 않으면 생성시 설정된 연결 문자열이 사용됩니다. 여기는 설정 my_schemaConnectionString입니다.

db = New my_schemaDataContext() 

또는 런타임에 변경하려면 : 그래서 그냥 할

string connectionString = "whatever"; 
db = New my_schemaDataContext(connectionString) 
+0

[this] (http://stackoverflow.com/a/1229745/206725)는'Integrated Security ='부분에 대한 모든 것을 설명 할 것이다. – AceMark

관련 문제