2013-07-30 27 views
0

这种方法,在Windows 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

采取public出3号线和一个括号添加到您的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语句的末尾缺少一个右括号。应该是这样的:

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

我在那里看到两个。 –

+0

哦,*第一*使用;它必须距离结束时间17分钟。 –

+0

你也可以删除'con.Close();'using语句来处理这个。 –

相关问题