Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.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# SqlCeCommand一直给我一个异常_C#_Database_Wcf_Ado.net_Sql Server Ce - Fatal编程技术网

C# SqlCeCommand一直给我一个异常

C# SqlCeCommand一直给我一个异常,c#,database,wcf,ado.net,sql-server-ce,C#,Database,Wcf,Ado.net,Sql Server Ce,我正在通过WCF服务连接到compact SQL数据库服务器,并不断获取以下内容,除了命令。ExecuteNonQuery()之外。我试过修复这个,但不知道出了什么问题 例外情况: 发生“System.Data.SqlServerCe.SqlCeException”类型的异常 在System.Data.SqlServerCe.dll中,但未在用户代码中处理 守则: //The connectionString can be found in the properties table of the

我正在通过WCF服务连接到compact SQL数据库服务器,并不断获取以下内容,除了
命令。ExecuteNonQuery()
之外。我试过修复这个,但不知道出了什么问题

例外情况:

发生“System.Data.SqlServerCe.SqlCeException”类型的异常 在System.Data.SqlServerCe.dll中,但未在用户代码中处理

守则:

//The connectionString can be found in the properties table of the database
string connString = "Data Source=C:\\Users\\User\\documents\\visual studio 2012\\Projects\\ADO_LINQ\\ADO_LINQ\\App_Data\\MyDatabase.sdf;Persist Security Info = False";
SqlCeConnection myConnection = new SqlCeConnection(connString);
myConnection.Open();

// Create the query
string myQuery = "INSERT INTO Player " +
    " VALUES (" + registrationID + "," + 
        firstName + ", " + 
        lastName + ", " + 
        phoneNumber + ", " + 
        address + ", " + 
        dateOfBirth + ");";

//Initialuze the command
SqlCeCommand myCommand = new SqlCeCommand(myQuery, myConnection);

//Run the command
myCommand.ExecuteNonQuery();

//Close the connection
myConnection.Close();

字符串数据类型周围缺少单引号,假设只有registrationID是Integer数据类型,而所有其他列都是字符串数据类型,则查询应该类似于

// Create the query
String myQuery = "INSERT INTO Player " +
               " VALUES (" + registrationID + ", '"+ firstName +"' , '"+lastName+"' , '"+phoneNumber+ "', '"+ address +"', '"+dateOfBirth+"' );";
更好、更安全的选择是使用参数化查询。像这样的

String connString = @"Data Source=C:\Users\User\documents\visual studio 2012\Projects\ADO_LINQ\ADO_LINQ\App_Data\MyDatabase.sdf;Persist Security Info = False";

using(SqlCeConnection myConnection = new SqlCeConnection(connString))
{
  // Create the query
 String myQuery = "INSERT INTO Player " +
               " VALUES (@registrationID , @firstName , @lastName , @phoneNumber, @address , @dateOfBirth );";

 //Initialuze the command
  SqlCeCommand myCommand = new SqlCeCommand(myQuery, myConnection);

 // Add parameters 

   myCommand.Parameters.AddWithValue("@registrationID" ,registrationID); 
   myCommand.Parameters.AddWithValue("@firstName" , firstName);
   myCommand.Parameters.AddWithValue("@lastName" , lastName);
   myCommand.Parameters.AddWithValue("@phoneNumber" , phoneNumber);
   myCommand.Parameters.AddWithValue("@address" , address);
   myCommand.Parameters.AddWithValue("@dateOfBirth" , dateOfBirth);

 //Open Connection 

   myConnection.Open();

 //Run the command
  myCommand.ExecuteNonQuery();
}

字符串数据类型周围缺少单引号,假设只有registrationID是Integer数据类型,而所有其他列都是字符串数据类型,则查询应该类似于

// Create the query
String myQuery = "INSERT INTO Player " +
               " VALUES (" + registrationID + ", '"+ firstName +"' , '"+lastName+"' , '"+phoneNumber+ "', '"+ address +"', '"+dateOfBirth+"' );";
更好、更安全的选择是使用参数化查询。像这样的

String connString = @"Data Source=C:\Users\User\documents\visual studio 2012\Projects\ADO_LINQ\ADO_LINQ\App_Data\MyDatabase.sdf;Persist Security Info = False";

using(SqlCeConnection myConnection = new SqlCeConnection(connString))
{
  // Create the query
 String myQuery = "INSERT INTO Player " +
               " VALUES (@registrationID , @firstName , @lastName , @phoneNumber, @address , @dateOfBirth );";

 //Initialuze the command
  SqlCeCommand myCommand = new SqlCeCommand(myQuery, myConnection);

 // Add parameters 

   myCommand.Parameters.AddWithValue("@registrationID" ,registrationID); 
   myCommand.Parameters.AddWithValue("@firstName" , firstName);
   myCommand.Parameters.AddWithValue("@lastName" , lastName);
   myCommand.Parameters.AddWithValue("@phoneNumber" , phoneNumber);
   myCommand.Parameters.AddWithValue("@address" , address);
   myCommand.Parameters.AddWithValue("@dateOfBirth" , dateOfBirth);

 //Open Connection 

   myConnection.Open();

 //Run the command
  myCommand.ExecuteNonQuery();
}

字符串数据类型周围缺少单引号,假设只有registrationID是Integer数据类型,而所有其他列都是字符串数据类型,则查询应该类似于

// Create the query
String myQuery = "INSERT INTO Player " +
               " VALUES (" + registrationID + ", '"+ firstName +"' , '"+lastName+"' , '"+phoneNumber+ "', '"+ address +"', '"+dateOfBirth+"' );";
更好、更安全的选择是使用参数化查询。像这样的

String connString = @"Data Source=C:\Users\User\documents\visual studio 2012\Projects\ADO_LINQ\ADO_LINQ\App_Data\MyDatabase.sdf;Persist Security Info = False";

using(SqlCeConnection myConnection = new SqlCeConnection(connString))
{
  // Create the query
 String myQuery = "INSERT INTO Player " +
               " VALUES (@registrationID , @firstName , @lastName , @phoneNumber, @address , @dateOfBirth );";

 //Initialuze the command
  SqlCeCommand myCommand = new SqlCeCommand(myQuery, myConnection);

 // Add parameters 

   myCommand.Parameters.AddWithValue("@registrationID" ,registrationID); 
   myCommand.Parameters.AddWithValue("@firstName" , firstName);
   myCommand.Parameters.AddWithValue("@lastName" , lastName);
   myCommand.Parameters.AddWithValue("@phoneNumber" , phoneNumber);
   myCommand.Parameters.AddWithValue("@address" , address);
   myCommand.Parameters.AddWithValue("@dateOfBirth" , dateOfBirth);

 //Open Connection 

   myConnection.Open();

 //Run the command
  myCommand.ExecuteNonQuery();
}

字符串数据类型周围缺少单引号,假设只有registrationID是Integer数据类型,而所有其他列都是字符串数据类型,则查询应该类似于

// Create the query
String myQuery = "INSERT INTO Player " +
               " VALUES (" + registrationID + ", '"+ firstName +"' , '"+lastName+"' , '"+phoneNumber+ "', '"+ address +"', '"+dateOfBirth+"' );";
更好、更安全的选择是使用参数化查询。像这样的

String connString = @"Data Source=C:\Users\User\documents\visual studio 2012\Projects\ADO_LINQ\ADO_LINQ\App_Data\MyDatabase.sdf;Persist Security Info = False";

using(SqlCeConnection myConnection = new SqlCeConnection(connString))
{
  // Create the query
 String myQuery = "INSERT INTO Player " +
               " VALUES (@registrationID , @firstName , @lastName , @phoneNumber, @address , @dateOfBirth );";

 //Initialuze the command
  SqlCeCommand myCommand = new SqlCeCommand(myQuery, myConnection);

 // Add parameters 

   myCommand.Parameters.AddWithValue("@registrationID" ,registrationID); 
   myCommand.Parameters.AddWithValue("@firstName" , firstName);
   myCommand.Parameters.AddWithValue("@lastName" , lastName);
   myCommand.Parameters.AddWithValue("@phoneNumber" , phoneNumber);
   myCommand.Parameters.AddWithValue("@address" , address);
   myCommand.Parameters.AddWithValue("@dateOfBirth" , dateOfBirth);

 //Open Connection 

   myConnection.Open();

 //Run the command
  myCommand.ExecuteNonQuery();
}

参数。使用参数。必须在查询中指定字段名。在(字段1,字段2,…字段n)值(valueField1,valueField2,…,valueFIeldN)中插入。此外,一些值​​需要在标记“”之间放置。另外,尝试放置一个try/catch块并输出真正的异常详细信息。参数。使用参数。必须在查询中指定字段名。插入(field1,field2,…fieldN)值(valueField1,valueField2,…,valueFIeldN)。此外,一些值​​需要在标记“”之间放置。另外,尝试放置一个try/catch块并输出真正的异常详细信息。参数。使用参数。必须在查询中指定字段名。插入(field1,field2,…fieldN)值(valueField1,valueField2,…,valueFIeldN)。此外,一些值​​需要在标记“”之间放置。另外,尝试放置一个try/catch块并输出真正的异常详细信息。参数。使用参数。必须在查询中指定字段名。插入(field1,field2,…fieldN)值(valueField1,valueField2,…,valueFIeldN)。此外,一些值​​需要在标记“”之间放置。此外,请尝试放置try/catch块并输出真正的异常详细信息。