为什么这种方法不仅不编译,而且抛出各种无意义的错误?

B. *_*non 0 c# .net-1.1 compact-framework windows-ce visual-studio

此方法是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");
    }
}
Run Code Online (Sandbox Code Playgroud)

...似乎被编译器视为完全陌生的东西.以下是粘贴它时导致的错误消息列表:

在此输入图像描述

Dan*_*Dan 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");
    }
}
Run Code Online (Sandbox Code Playgroud)

你不需要那个con.Close电话.