C# sql只创建一个表
我有一段代码专门用于创建几个表,但是它创建了第一个表,然后抛出异常,但是异常不包含任何内容,它是空白的。这是我的密码:C# sql只创建一个表,c#,sql,winforms,sql-server-ce,C#,Sql,Winforms,Sql Server Ce,我有一段代码专门用于创建几个表,但是它创建了第一个表,然后抛出异常,但是异常不包含任何内容,它是空白的。这是我的密码: string connectionString = "DataSource=\"EventControl.sdf\""; SqlCeEngine en = new SqlCeEngine(connectionString); en.CreateDatabase(); string createTable = "CREATE TAB
string connectionString = "DataSource=\"EventControl.sdf\"";
SqlCeEngine en = new SqlCeEngine(connectionString);
en.CreateDatabase();
string createTable = "CREATE TABLE Login (userName nvarchar(50), UserType nvarchar(10), Salt nvarchar(100), Hash nvarchar(100))";
string connection = "Data Source =\"EventControl.sdf\"";
SqlCeConnection connexion = new SqlCeConnection(connection);
SqlCeCommand table = new SqlCeCommand(createTable, connexion);
try
{
connexion.Open();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
table.ExecuteNonQuery();
connexion.Close();
string createTable1 = "CREATE TABLE Logs (LogNo nvarchar(5), LoggedBy nvarchar(20), DateAndTime nvarchar(20), Callsign nvarchar(20), Category nvarchar(20), SubCategory nvarchar(20), Escalated nvarchar(15), Summary nvarchar(MAX), Complete nvarchar(10))";
string connection1 = "Data Source =\"EventControl.sdf\"";
SqlCeConnection connexion1 = new SqlCeConnection(connection1);
SqlCeCommand table1 = new SqlCeCommand(createTable1, connexion1);
try
{
connexion1.Open();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
table1.ExecuteNonQuery();
connexion1.Close();
string createTable2 = "CREATE TABLE Sites (SiteName nvarchar(100),SiteAddress nvarchar(100),PersonInCharge nvarchar(100))";
string connection2 = "Data Source =\"EventControl.sdf\"";
SqlCeConnection connexion2 = new SqlCeConnection(connection2);
SqlCeCommand table2 = new SqlCeCommand(createTable2, connexion2);
try
{
connexion2.Open();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
table2.ExecuteNonQuery();
connexion2.Close();
string createTable3 = "CREATE TABLE Categories (Category nvarchar(50), SubCategory nvarchar(50))";
string connection3 = "Data Source =\"EventControl.sdf\"";
SqlCeConnection connexion3 = new SqlCeConnection(connection3);
SqlCeCommand table3 = new SqlCeCommand(createTable3, connexion3);
try
{
connexion3.Open();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
table3.ExecuteNonQuery();
connexion3.Close();
string createTable4 = "CREATE TABLE Callsigns (StaffName nvarchar (50), Callsign nvarchar(50))";
string connection4 = "Data Source =\"EventControl.sdf\"";
SqlCeConnection connexion4 = new SqlCeConnection(connection4);
SqlCeCommand table4 = new SqlCeCommand(createTable4, connexion4);
try
{
connexion4.Open();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
table4.ExecuteNonQuery();
connexion4.Close();
string createTable5 = "CREATE TABLE Events (EventName nvarchar(100), EventLocation nvarchar(100), PersonInCharge nvarchar(100))";
string connection5 = "Data Source =\"EventControl.sdf\"";
SqlCeConnection connexion5 = new SqlCeConnection(connection5);
SqlCeCommand table5 = new SqlCeCommand(createTable5, connexion5);
try
{
connexion5.Open();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
table5.ExecuteNonQuery();
connexion5.Close();
它到达table1.ExecuteOnQuery,然后停止。有人能帮忙吗
PS,在有人说为什么不在VS中创建数据库之前,这是因为我已经尝试过了,它们在我的计算机上工作得很好,但是当我创建部署的设置文件时,文件夹变得一团糟,程序再也无法识别数据库了
SqlCeEngine engine = new SqlCeEngine("Data Source = AdventureWorks.sdf");
engine.Compact(null);
//you need add a user and a password to acess the database
engine.Compact("Data Source=; Password =a@3!7f$dQ;");
将表1中的最大值更改为4000SQl Server Compact不支持数据类型nvarchar(MAX),请改用ntext:
Summary ntext,
有错误信息吗?您是否在单步执行代码时运行了SQL Profiler?当你说“停止”是什么意思?就像代码控制停止一样,应用程序崩溃了?SQL Profiler?从没听说过,不过听起来很有用。它不会冻结,它只是停留在那一行,然后打开应该打开的表单,当所有的事情都说了和做了之后。我的建议是,
table1.ExecuteNonQuery()代码>在Try-Catch中,查看是否弹出提示。祝你好运“分析查询时出错。[令牌行编号=1,令牌行偏移量=201,令牌错误=MAX]??完成。将最大值更改为400:)您能解释一下为什么这样做吗?请在系统允许您这样做时接受您自己的答案。”