我从我的一个班级获得了这段代码,当我将鼠标悬停在" //错误旁边的分号上时#34; "}预期"但是所有括号都是关闭的,我不知道为什么会导致这种情况,我尝试重建但没有任何改变
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SQLite.Net;
using SQLite.Net.Platform.WinRT;
namespace HomeAutomation
{
public class MainCode
{
static string path = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "db.sqlite");
static SQLiteConnection conn = new SQLiteConnection(new SQLitePlatformWinRT(), path)
{
conn.CreateTable<User>;//ERROR IS HERE
}
}
public class User
{
public int Id { get; set; }
public string Name { get; set; }
}
}
答案 0 :(得分:4)
您正在使用object initiationalization。你不要在其中使用分号b / c分号表示命令的终止点。您不能在初始化过程中结束语句。您将使用逗号分隔您正在初始化的每个字段,然后在最后一个大括号后结束语句。
修改强>
看起来你不应该在再次查看代码后使用对象初始化。此语法用于初始化对象的属性。您需要将两个语句分开。即。
static SQLiteConnection conn = new SQLiteConnection(new SQLitePlatformWinRT(), path); // End initialization statement
static MainCode()
{
conn.CreateTable<User>;//Initialize in static constructor
}
答案 1 :(得分:1)
此conn.CreateTable<User>;//ERROR IS HERE
应为
conn.CreateTable<User>();//solved
你忘了括号
答案 2 :(得分:0)
不确定这是否会有所帮助,但也许可以尝试:
conn.CreateTable<User>("SELECT somethingHere FROM somewhere");
答案 3 :(得分:0)
我认为您在此处使用关键字static
时应该使用using
看看您尝试实现的目标我建议您的代码可能需要看起来像:
using SQLiteConnection conn = new SQLiteConnection(new SQLitePlatformWinRT(), path)
{
conn.CreateTable<User>();//ERROR IS HERE
}
我改变了什么?
我已将static
更改为using
,并将括号添加到conn.CreateTable<User>()
的末尾
希望这有帮助!