Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 指定的表不存在。[表名称]错误_C#_Sql_C# 4.0_Sql Server Ce_Sql Server Ce 3.5 - Fatal编程技术网

C# 指定的表不存在。[表名称]错误

C# 指定的表不存在。[表名称]错误,c#,sql,c#-4.0,sql-server-ce,sql-server-ce-3.5,C#,Sql,C# 4.0,Sql Server Ce,Sql Server Ce 3.5,大家好,我有一个小应用程序来增加一天的费用 为此,我使用SQLCompactDatabase(CE)。在将记录插入表名时,我遇到了一个错误 指定的表不存在。[费用] 插入代码为 using (var con =new SqlCeConnection(@"Data Source=|DataDirectory|\Database\Acadamy.sdf; Persist Security Info=False")) { con.Open(); try {

大家好,我有一个小应用程序来增加一天的费用

为此,我使用SQLCompactDatabase(CE)。在将记录插入表名时,我遇到了一个错误

指定的表不存在。[费用]

插入代码为

using (var con =new SqlCeConnection(@"Data Source=|DataDirectory|\Database\Acadamy.sdf;
       Persist Security Info=False"))
 {
   con.Open();
   try
    {
     var Cmd = new SqlCeCommand();
     String sqlAddNew = @"INSERT INTO Expenses (name, amount,receipt,details) 
                Values(@name,@amount,@receipt,@details)";
     Cmd = new SqlCeCommand(sqlAddNew, con);
     Cmd.Parameters.Add("@name", SqlDbType.NVarChar).Value = txtName.Text;
     Cmd.Parameters.Add("@amount", SqlDbType.NVarChar).Value = txtAmount.Text;
     Cmd.Parameters.AddWithValue("@receipt", SqlDbType.NVarChar).Value = txtRecept.Text;
     Cmd.Parameters.AddWithValue("@details", SqlDbType.NVarChar).Value = txtDetails.Text;
     Cmd.ExecuteNonQuery();
    }
    catch (Exception exception)
     {
       txtAmount.Text = exception.ToString();
     }
    finally
     {
       if (con.State == ConnectionState.Open) con.Close();
     }
   }
}
我不明白为什么会发生这种错误。 Acadamy.sdf结构如下:


我能够从同一数据库的另一个表中检索数据。问题出在哪里?

每当我得到一个关于不存在的表的错误时,我都会使用SQL Server Management Studio检查该表是否确实丢失,或者我的查询中是否有输入错误


不幸的是,当前版本的ManagementStudio不再支持SQLServerCompact数据库,您将不得不使用2008版本。您可以直接从Microsoft获得它:

很可能该表不存在,而您正在使用的另一个表存在。请仔细检查表名。您确定您的
Acadamy.sdf
中有
费用表吗,请参阅更新的问题。在bin/debug文件夹中查找数据库文件的副本,但不包含该表。我不知道您的目录结构,但您确定已连接到真正的数据库吗?您可以直接在Management Studio中编写SQL命令。它是否给出了相同的错误?我无法在ManagementStudio中检查它,但我已在LINQPad中检查,并且它正在工作。ManagementStudio中出现了什么问题?