Insert命令在C#和SQL Server之间的连接上不起作用

本文关键字:之间 连接 不起作用 Server SQL 命令 Insert | 更新日期: 2023-09-27 18:20:25

我在SQL Server中有这个表:

CREATE TABLE Ciudadano (  
ci int not null,  
Nombre varchar(50),  
Apellido varchar(50),  
Correo varchar(50),  
Usuario varchar(50), 
 Contrasena varchar(50),  
Localidad_cod int,  
Primary key (ci)  
)

我正试图使用一个名为sp_ConsultarCuenta:的存储过程从Visual Studio c#向表Ciudadano添加数据

CREATE PROCEDURE sp_ConsultarCuenta
   @ci int, @nom varchar(50), @ape varchar(50), @user varchar(50), 
   @pass varchar(50), @correo varchar(50), @loc varchar(50)
AS
   IF NOT EXISTS(SELECT ci,Usuario FROM Ciudadano 
                 WHERE ci = @ci OR Usuario = @user)
      DECLARE @var varchar(50)
      SET @var = (SELECT cod From Localidad Where Nombre = @loc)
      INSERT INTO Ciudadano (ci, Nombre, Apellido, Correo, Usuario, Contrasena, Localidad_cod)
      VALUES (@ci, @nom, @ape, @user, @pass, @correo, @var)

在我的c#代码上,我有这个:

public void AgregarCiudadano()
{
   string con = @"Data Source=(local);Initial Catalog=SistemaDeQuejas;Trusted_Connection=True";
   SqlConnection conexion = new SqlConnection(con);
   conexion.Open();
   SqlDataAdapter Comando = new SqlDataAdapter();
   Comando.InsertCommand = conexion.CreateCommand();
   Comando.InsertCommand.CommandText = "sp_ConsultarCuenta";
   Comando.InsertCommand.CommandType = CommandType.StoredProcedure;
   Comando.InsertCommand.Connection = conexion;
   Comando.InsertCommand.Parameters.Add("@ci", SqlDbType.Int).Value = System.Convert.ToInt32(ci);
   Comando.InsertCommand.Parameters.Add("@nom", SqlDbType.VarChar, 50).Value = Nombre;
   Comando.InsertCommand.Parameters.Add("@ape", SqlDbType.VarChar, 50).Value = Apellido;
   Comando.InsertCommand.Parameters.Add("@user", SqlDbType.VarChar, 50).Value = Usuario;
   Comando.InsertCommand.Parameters.Add("@pass", SqlDbType.VarChar, 50).Value = Contrasena;
   Comando.InsertCommand.Parameters.Add("@correo", SqlDbType.VarChar, 50).Value = Correo;
   Comando.InsertCommand.Parameters.Add("@loc", SqlDbType.VarChar, 50).Value = Localidad;
   conexion.Close();  
}

我正在做的是一个Web表单,该方法由表单上的一个按钮调用。但当我运行它并按下按钮时,它不会引发任何错误,但我试图插入数据库表的数据根本没有插入。我的代码有问题吗?

Insert命令在C#和SQL Server之间的连接上不起作用

c您可以用一种简单的方法运行插入命令

using(var connection = new SqlConnection(connectionString))
{
   connection.Open();
   using (var command = new SqlCommand("sp_ConsultarCuenta", connection))
   {
        command.Parameters.AddWithValue("@Nombre", params.Nombre);
        command.CommandType = CommandType.StoredProcedure;
        command.ExecuteNonQuery();
   }
   connection.Close();
 }