2014-10-01 2 views
0

C# 2 주 전 배우기를 봤지만 지금은 많이 알지는 못하지만 지금은 처음 프로그램을 만들고 싶습니다. 더 나은 솔루션을 알게되면 시간을두고 문제를 해결할 것이므로 ATM의 보안 결함에 대해 정말로 신경을 써야합니다.SqlConnection, 오류 발생 및 데이터베이스에 연결할 수 없음 (System.Data.dll에서 발생)

그래서 난이 오류가있어 :

An unhandled exception of type 'System.InvalidOperationException' occurred in System.Data.dll 

Additional information: A severe internal connection error has occurred. 

을 그리고 지금 내 코드를 수정하고 행운과 솔루션에 대한 인터넷 검색 2 일 동안이 오류와 함께 앉아있다. 여기에 전문가가 있다는 것을 알기 때문에 여기로 향합니다. 오류와

코드 :

 using (SqlConnection con = new SqlConnection("server=SERVERIP,3306;Integrated Security=True;database=data;uid=USER;password=PASS")) 
     { 
      con.Open(); //ERROR HERE 

      using (SqlCommand cmd = new SqlCommand("insert into info(Datum,Timmar,Rast) Values(@Datum,@Timmar,@Rast)", con)) 
      { 
       cmd.Parameters.AddWithValue("@Datum", textBox1.Text); 
       cmd.Parameters.AddWithValue("@Timmar", textBox2.Text); 
       cmd.Parameters.AddWithValue("@Rast", textBox3.Text); 
       cmd.ExecuteNonQuery(); 
       MessageBox.Show("Sparat!"); 
      } 
     } 

그래서 기본적으로 내가이 프로그램을하려고하고 무엇을 그렇게하고있는 텍스트 상자에 사용자 유형이 데이터베이스에 저장됩니다 데이터.

전체 대문자로 단어를 입력 할 때 예를 들어 그 단어가 다른 것을 의미합니다. 당신은 사용자 이름과 암호를 제공하는 경우 IP 및 비밀번호 등

+1

코드 문제가없는 것으로 보입니다. 내 생각 엔 외부에서 연결, .NET 라이브러리 또는 시스템 라이브러리가 망가져있다. 다른 컴퓨터에서 코드를 사용해보십시오. –

+0

나는 문제가 연결 문자열에 믿는다 "서버 = serverip로, 3306; 통합 보안 = TRUE; 데이터베이스 = 데이터; UID = 사용자, 비밀 번호 = PASS" 그것은 형식에 있어야하는 것은 serverip로해야 IP 주소는 10.100.10.22 –

+1

@DanHunex와 비슷합니다. 예제 문자열 일뿐 아니라 IP 일 필요는 없으며 컴퓨터 이름 일 수도 있습니다. – Habib

답변

0

이 안 Integrated Security=true

uid=USER;password=PASS 있습니다. MySQL 데이터베이스와 SQL 서버 데이터베이스처럼 대화하려고합니다.

SqlConnection이 아닌 MySqlConnection을 사용해야합니다. MySqlConnectionMySQL Connector/NET에 있으며 NuGet을 통해 설치할 수도 있습니다.

코드는 다음과 같이 표시됩니다.

using (MySqlConnection con = new MySqlConnection("server=SERVERIP;port=3306;database=data;uid=USER;password=PASS")) 
    { 
     con.Open(); // Hopefully no error here any more 

     using (MySqlCommand cmd = new MySqlCommand("insert into info(Datum,Timmar,Rast) Values(@Datum,@Timmar,@Rast)", con)) 
     { 
      cmd.Parameters.AddWithValue("@Datum", textBox1.Text); 
      cmd.Parameters.AddWithValue("@Timmar", textBox2.Text); 
      cmd.Parameters.AddWithValue("@Rast", textBox3.Text); 
      cmd.ExecuteNonQuery(); 
      MessageBox.Show("Sparat!"); 
     } 
    } 
+0

와우 나는 그것이 오랫동안 고칠려고 노력하고 내가 잘못된 연결 클래스를 사용하는 믿을 수 없어! 나는 충분히 감사하지 않는다! 이 문제를 가진 사람들에게 이것은 해결책입니다. "port = 3306"을 추가하거나 mysql 포트가 무엇이든간에 –

0

당신은 당신이 잘못 연결 클래스를 사용하는 Integrated Security=true

+0

"서버 = SERVERIP, 3306, 데이터베이스 = 데이터, uid = USER, 암호 = 통과 "줄을 편집 한 있지만 불행히도 작동하지 않습니다 둘 다 –

관련 문제