我有這個表中的SQL Server之間的連接:Insert命令不工作的C#和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)
)
我試圖將數據從Visual Studio C#添加到表Ciudadano
,使用調用的存儲過程sp_ConsultarCuenta
:
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表單,該方法由表單上的按鈕調用。但是,當我運行它,並按下按鈕它不會引發任何錯誤,但我試圖插入到數據庫表中的數據根本沒有插入。我的代碼有問題嗎?
旁註:你應該** **不使用'sp_'前綴爲您的存儲過程。微軟已經保留了這個前綴以供自己使用(參見*命名存儲過程*)](http://msdn.microsoft.com/en-us/library/ms190669%28v=sql.105%29.aspx),以及你將來有可能冒着名字衝突的風險。 [這對你的存儲過程性能也是不利的](http://www.sqlperformance.com/2012/10/t-sql-queries/sp_prefix)。最好只是簡單地避免使用'sp_'並將其他內容用作前綴 - 或者根本沒有前綴! –
謝謝marc_s ...其實並不知道! – MSI