C#和sql server

C#和sql server,c#,C#,我已经创建了一个数据库和一个表,其中包含两个字段Id和Name。 现在我想在单击按钮时插入值,示例代码已经给出。它不起作用了 using (SqlConnection connection = new SqlConnection(strConnection)) { SqlCommand command =new SqlCommand("insert into Test (Id,Name) values(5,kk);",connection); connection.Open();

我已经创建了一个数据库和一个表,其中包含两个字段Id和Name。 现在我想在单击按钮时插入值,示例代码已经给出。它不起作用了

using (SqlConnection connection = new SqlConnection(strConnection))
{
    SqlCommand command =new SqlCommand("insert into Test (Id,Name) values(5,kk);",connection);
    connection.Open();
    command.ExecuteNonQuery();
     connection.Close();
}
        //add your connection string between ""
        string connectionString = "";

        using (var conn = new SqlConnection(connectionString))
        using (DbCommand cmd = conn.CreateCommand())
        {
            cmd.CommandText = "INSERT INTO pdf (Id, Name) VALUES (5, 'kk')";

            conn.Open();

            conn.ExecuteNonQuery();

            conn.Close();
         }

字符串值应在引号中。这与C#关系不大,而与T-SQL关系更大

        //add your connection string between ""
        string connectionString = "";

        using (var conn = new SqlConnection(connectionString))
        using (DbCommand cmd = conn.CreateCommand())
        {
            cmd.CommandText = "INSERT INTO pdf (Id, Name) VALUES (5, 'kk')";

            conn.Open();

            conn.ExecuteNonQuery();

            conn.Close();
         }
试试这个,注意kk

SqlCommand command =  
      new SqlCommand("insert into Test (Id,Name) values(5,'kk');",connection);
connection.Open();
command.ExecuteNonQuery();
connection.Close();
        //add your connection string between ""
        string connectionString = "";

        using (var conn = new SqlConnection(connectionString))
        using (DbCommand cmd = conn.CreateCommand())
        {
            cmd.CommandText = "INSERT INTO pdf (Id, Name) VALUES (5, 'kk')";

            conn.Open();

            conn.ExecuteNonQuery();

            conn.Close();
         }
这里我还假设
Id
不是一个自动递增字段。如果是的话,你就不应该填了

        //add your connection string between ""
        string connectionString = "";

        using (var conn = new SqlConnection(connectionString))
        using (DbCommand cmd = conn.CreateCommand())
        {
            cmd.CommandText = "INSERT INTO pdf (Id, Name) VALUES (5, 'kk')";

            conn.Open();

            conn.ExecuteNonQuery();

            conn.Close();
         }

作为辅助节点,您应该查看参数化查询以防止SQL注入。

在本例中,您需要在kk周围使用单引号

insert into Test (Id,Name) values(5,'kk')
        //add your connection string between ""
        string connectionString = "";

        using (var conn = new SqlConnection(connectionString))
        using (DbCommand cmd = conn.CreateCommand())
        {
            cmd.CommandText = "INSERT INTO pdf (Id, Name) VALUES (5, 'kk')";

            conn.Open();

            conn.ExecuteNonQuery();

            conn.Close();
         }
通常,您应该使用参数化查询

尝试以下操作:

SqlConnection con = new SqlConnection('connection string here');    
string command = "INSERT INTO Test(Id, Name) VALUES(5, 'kk')";
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandType = System.Data.CommandType.Text;
cmd.CommandText = command;
con.Open();
cmd.ExecuteNonQuery();
con.Close();
        //add your connection string between ""
        string connectionString = "";

        using (var conn = new SqlConnection(connectionString))
        using (DbCommand cmd = conn.CreateCommand())
        {
            cmd.CommandText = "INSERT INTO pdf (Id, Name) VALUES (5, 'kk')";

            conn.Open();

            conn.ExecuteNonQuery();

            conn.Close();
         }
试试这个:

SqlConnection conn = new SqlConnection();
SqlTransaction trans = conn.BeginTransaction();
try
{
   using (SqlCommand cmd = new SqlCommand("insert into Test (Id,Name) values(@iD, @Name)", conn, trans))
   {
      cmd.CommandType = CommandType.Text;
      cmd.AddParameter(SqlDbType.UniqueIdentifier, ParameterDirection.Input, "@iD", ID);
      cmd.AddParameter(SqlDbType.VarChar, ParameterDirection.Input, "@Name", Name);

      cmd.ExecuteNonQuery();
   }

   conn.CommitTransaction(trans);
}
catch (Exception ex)
{
   conn.RollbackTransaction(trans);
   throw ex;
}
        //add your connection string between ""
        string connectionString = "";

        using (var conn = new SqlConnection(connectionString))
        using (DbCommand cmd = conn.CreateCommand())
        {
            cmd.CommandText = "INSERT INTO pdf (Id, Name) VALUES (5, 'kk')";

            conn.Open();

            conn.ExecuteNonQuery();

            conn.Close();
         }
  • 字符串值应介于“”之间
  • 验证您的连接字符串

            //add your connection string between ""
            string connectionString = "";
    
            using (var conn = new SqlConnection(connectionString))
            using (DbCommand cmd = conn.CreateCommand())
            {
                cmd.CommandText = "INSERT INTO pdf (Id, Name) VALUES (5, 'kk')";
    
                conn.Open();
    
                conn.ExecuteNonQuery();
    
                conn.Close();
             }
    

  • 看起来您的当前代码有多个问题

            //add your connection string between ""
            string connectionString = "";
    
            using (var conn = new SqlConnection(connectionString))
            using (DbCommand cmd = conn.CreateCommand())
            {
                cmd.CommandText = "INSERT INTO pdf (Id, Name) VALUES (5, 'kk')";
    
                conn.Open();
    
                conn.ExecuteNonQuery();
    
                conn.Close();
             }
    
    • 您需要将字符串值括在单引号中,正如其他答案中指出的那样
    • 您需要启用到SQL server的远程连接。
    如果您使用的是SQL server 2008,请检查以下链接

            //add your connection string between ""
            string connectionString = "";
    
            using (var conn = new SqlConnection(connectionString))
            using (DbCommand cmd = conn.CreateCommand())
            {
                cmd.CommandText = "INSERT INTO pdf (Id, Name) VALUES (5, 'kk')";
    
                conn.Open();
    
                conn.ExecuteNonQuery();
    
                conn.Close();
             }
    

            //add your connection string between ""
            string connectionString = "";
    
            using (var conn = new SqlConnection(connectionString))
            using (DbCommand cmd = conn.CreateCommand())
            {
                cmd.CommandText = "INSERT INTO pdf (Id, Name) VALUES (5, 'kk')";
    
                conn.Open();
    
                conn.ExecuteNonQuery();
    
                conn.Close();
             }
    
    对于SQL Server 2005,请参见:

            //add your connection string between ""
            string connectionString = "";
    
            using (var conn = new SqlConnection(connectionString))
            using (DbCommand cmd = conn.CreateCommand())
            {
                cmd.CommandText = "INSERT INTO pdf (Id, Name) VALUES (5, 'kk')";
    
                conn.Open();
    
                conn.ExecuteNonQuery();
    
                conn.Close();
             }
    

    不工作??你有什么例外吗?有错误吗?没有输入数据?请用完整的信息更新您的问题,并使用参数化查询错误是什么?即兴-你需要用单引号将kk括起来一个“kk”-假定这是System.Data.SqlClient.SqlException类型的sortAn未处理异常的varchar,在System.Data.dll中发生。其他信息:在建立与SQL Server的连接时发生了与网络相关或特定于实例的错误。找不到服务器或无法访问服务器。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。(提供程序:命名管道提供程序,错误:40-无法打开到SQL Server的连接)发布连接字符串。该错误表示无法通过代码访问数据库。因此,在您可以连接到您的dbstring strConnection=“Data Source=(local);Integrated Security=yes”之前,您的代码中的错误(许多人在下面已经指出)是无关紧要的;
            //add your connection string between ""
            string connectionString = "";
    
            using (var conn = new SqlConnection(connectionString))
            using (DbCommand cmd = conn.CreateCommand())
            {
                cmd.CommandText = "INSERT INTO pdf (Id, Name) VALUES (5, 'kk')";
    
                conn.Open();
    
                conn.ExecuteNonQuery();
    
                conn.Close();
             }