2013-07-30 3 views
0

이 방법은, 윈도우 CE/CF/.NET1.1 프로젝트의 일부 :왜이 방법은 컴파일하지 않고 모든 종류의 의미없는 오류를 던집니까?

public void createSettingsTable() 
{ 
    public string filename = "\\my documents\\CCRDB.SDF"; 
    string conStr = "Data Source = " + filename; 
    try 
    { 
     using (SqlCeConnection con = new SqlCeConnection(conStr) 
     { 
      con.Open(); 
      using (SqlCeCommand com = new SqlCeCommand("create table ccr_settings (setting_id INT IDENTITY NOT NULL PRIMARY KEY, setting_name varchar(40) not null, setting_value(63) varchar not null)", con)) 
      { 
        com.ExecuteNonQuery(); 
      } 
      con.Close(); 
     } 
    } 
    catch (Exception ex) 
    { 
     CCR.ExceptionHandler(ex, "createSettingsTable"); 
    } 
} 

... 겉으로는 컴파일러에 의해 완전히 외국 무언가로 볼 수 있습니다.

enter image description here

답변

6

는 3 라인에서 public을 가지고 당신의 using의 마지막에 괄호를 추가

public void createSettingsTable() 
{ 
    string filename = "\\my documents\\CCRDB.SDF"; // <- Here 
    string conStr = "Data Source = " + filename; 
    try 
    { 
     using (SqlCeConnection con = new SqlCeConnection(conStr)) // <- Here 
     { 
      con.Open(); 
      using (SqlCeCommand com = new SqlCeCommand("create table ccr_settings (setting_id INT IDENTITY NOT NULL PRIMARY KEY, setting_name varchar(40) not null, setting_value(63) varchar not null)", con)) 
      { 
        com.ExecuteNonQuery(); 
      } 
      //con.Close(); // this is not needed 
     } 
    } 
    catch (Exception ex) 
    { 
     CCR.ExceptionHandler(ex, "createSettingsTable"); 
    } 
} 

을 그리고 당신은 그 con.Close 전화가 필요하지 않습니다.

3

당신은 당신의 using 문의 끝에 닫는 괄호가 누락되었습니다 : 여기에 붙여 넣을 때 발생 ERR의 MSG를 목록입니다. 이 같아야합니다

using (SqlCeConnection con = new SqlCeConnection(conStr)) { 
    //... 
} 
+0

2 명이 거기에 있습니다. –

+0

아, * 처음 * 사용; 끝날 때까지 17 분이어야합니다. –

+0

'con.Close();'도 제거 할 수 있습니다. using 문은이를 처리 할 것입니다. –