2009-05-05 10 views
0

SQL에서 초보자가되었습니다. 문제가 있습니다. 내가 IT를 실행할 때 ... 나는 유형의 처리되지 않은 예외를 얻을기본 SQL 항목에 문제가 있습니다.

using System; 
using System.Collections.Generic; 
using System.Text; 
using System.Data.SqlClient; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      SqlConnection myConnection = new SqlConnection("user id=userid;" + 
             "Password=validpassword;" + 
             "Trusted_Connection=yes;" + 
             "Data Source=localhost;" + 
             "connection timeout=300"); 



      try 
      { 
       myConnection.Open(); 
      } 
      catch (Exception e) 
      { 
       Console.WriteLine(e.ToString()); 
      } 


      SqlCommand myCommand = new SqlCommand("INSERT INTO table (Column1, Column2) " + 
             "Values ('string', 1)", myConnection); 

      myCommand.ExecuteNonQuery(); 



     } 
    } 
} 

'시스템 : 내가 할 수 SHD 모든 먼저 u는 내가 SQL 2005 서버를 설치 한 N 다음 ConsoleApp을 만들어 아래 코드의 나머지는 알고있다 .Data.SqlClient.SqlException 'System.Data.dll에서 발생했습니다. with myCommand.ExecuteNonQuery();

내가 잘못 가고있는 곳을 안내해줍니다. 간단한 일을하고 싶습니다. 뭔가를 삽입 한 다음 읽습니다.하지만 삽입하는 중에도 오류가 발생합니다.

+0

연결이 열려 있습니까? –

+0

테이블이 이미 생성 되었습니까? –

답변

0

잘못된 사용자 이름, 암호 및/또는 서버 데이터베이스에 연결하는 데 문제가 있거나 테이블과 열이 없습니다. catch 문에 중단 점을 배치하고 더 많은 것을 알아 내기 위해 예외를 살펴 보겠습니다.

6

데이터베이스를 사용하고 있지 않습니다. 연결 문자열의 초기 카탈로그 쿼리를 테이블 "테이블"이있는 데이터베이스로 설정합니다. 또는 INSERT INTO dbName .. 테이블 VALUES ...

또한 ConnectionStrings.com을 확인하십시오. 그것을 배우고, 사용하고, 사랑하십시오.

+0

뛰어난 캐치! 연결 문자열에 "Initial Catalog ="또는 "database ="가 없습니다. "table"은 어디에 있습니까? :-) –

3

연결의 초기 카탈로그 매개 변수가 누락 된 것 같습니다. "초기 카탈로그 = DatabaseName"이어야합니다. 또한 신뢰할 수있는 연결을 사용하는 경우 사용자 ID 및 암호 매개 변수가 필요하지 않습니다.

2

ExecuteNonQuery를 포함하도록 예외 처리를 시작한 다음 전체 예외로 질문을 편집하십시오.

 static void Main(string[] args) 
     { 
      SqlConnection myConnection = new SqlConnection("user id=userid;" + 
             "Password=validpassword;" + 
             "Trusted_Connection=yes;" + 
             "Data Source=localhost;" + 
             "connection timeout=300"); 


      try 
      { 
       myConnection.Open(); 

       SqlCommand myCommand = new SqlCommand("INSERT INTO table (Column1, Column2) " + 
             "Values ('string', 1)", myConnection); 
       myCommand.ExecuteNonQuery();  
      } 
      catch (Exception e) 
      { 
       Console.WriteLine(e.ToString()); 
      } 
     } 
+0

아마도 Using 문도 사용 하시겠습니까? –

0

경우 트랩을 제외하거나 예외 세부 사항을 볼 수 있도록, 당신은 예외의 메시지를 검사하여 오류의 자세한 내용을 찾을 수있을, 또는해야 콘솔 응용 프로그램을 디버깅 내부 예외.

Chad가 언급했듯이 이것은 쿼리에 지정한 테이블이 사용자가 가리키는 데이터베이스에 존재하지 않는 간단한 명명 문제 일 수 있습니다. 또는 해석하려는 데이터 유형에 문제가있을 수 있습니다. 예외로 돌아 오는 DB 서버 메시지는 더 많이 알려줍니다.

1

SQL Server 2005를 설치하면 혼합 모드로 전환 되었습니까? 사용자 이름과 암호를 전달하려면이 항목이 필요합니다. 나는 .NET이 사용자 이름/암호 및 연결 문자열에서 신뢰할 수있는 연결 = true로 무엇을 할 것인지 잘 모르겠습니다. 개방 연결 되니?

또한 연결 문자열에 데이터베이스 이름이 필요합니다.

귀하의 게시물에 커밋을 추가 할 수 없으므로 여기에 추가하겠습니다. 데이터베이스와 향후 테이블을 사용하려면 SQL Server Management Studio를 시작해야합니다. 그런 다음 테이블을 만드는 방법에 대해 온라인으로 책을 읽거나 도움을 청하십시오.

+0

고마워요. –

관련 문제