J'ai cette procudure stockée qui ne fonctionnera pas. Si j'essaie cette requête dans le studio de gestion avec mes paramètres renseignés cela fonctionne, je ne peux pas voir si j'ai fait quelque chose de mal dans mon code mais j'espère que quelqu'un remarquera quelque chose que je fais malC# SQL server 2008 r2 insert procédure stockée ne fonctionne pas
CREATE PROCEDURE new_project
-- Add the parameters for the stored procedure here
@proj_naam nvarchar = null,
@plaats nvarchar = null,
@opd_geef int = 0,
@status int = 0,
@proj_id int = 0 AS BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
INSERT INTO project (naam_project, plaats, opdrachtgeverZEEBREGTS_nr, status, project_NR)
VALUES (@proj_naam, @plaats, @opd_geef, @status, @proj_id) END GO
CREATE PROCEDURE new_project
-- Add the parameters for the stored procedure here
@proj_naam nvarchar = null,
@plaats nvarchar = null,
@opd_geef int = 0,
@status int = 0,
@proj_id int = 0 AS BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
INSERT INTO project (naam_project, plaats, opdrachtgeverZEEBREGTS_nr, status, project_NR)
VALUES (@proj_naam, @plaats, @opd_geef, @status, @proj_id) END GO
et C# Code:
System.Data.SqlClient.SqlConnection con;
con = new System.Data.SqlClient.SqlConnection();
con.ConnectionString = Global.ConnectionString_fileserver;
con.Open();
string stopro = "";
switch (type)
{
case 1:
stopro = "new_project";
break;
case 2:
stopro = "new_bedrijf";
break;
case 3:
stopro = "new_persoon";
break;
}
SqlCommand command = new SqlCommand(stopro, con);
command.CommandType = CommandType.StoredProcedure;
switch (type)
{
case 1:
SqlParameter proj_naam = command.Parameters.Add("@proj_naam", SqlDbType.NVarChar);
SqlParameter plaats = command.Parameters.Add("@plaats", SqlDbType.NVarChar);
SqlParameter opdrachtgever = command.Parameters.Add("@opd_geef", SqlDbType.Int);
SqlParameter status = command.Parameters.Add("@status", SqlDbType.Int);
SqlParameter proj_id = command.Parameters.Add("@proj_id", SqlDbType.Int);
proj_naam.Value = tb_proj_projectnaam.Text; proj_naam.Direction = ParameterDirection.Input;
plaats.Value = tb_proj_plaats.Text; plaats.Direction = ParameterDirection.Input;
opdrachtgever.Value = cb_proj_opdrachtgever.SelectedValue; opdrachtgever.Direction = ParameterDirection.Input;
status.Value = cb_proj_status.SelectedValue; status.Direction = ParameterDirection.Input;
proj_id.Value = id; proj_id.Direction = ParameterDirection.Input;
break;
}
int nwok = command.ExecuteNonQuery();
con.Close();
Je l'espère quelqu'un peut aider thnx à l'avance!
Est-ce qu'il lance une erreur spécifique? – Xavinou
Pouvez-vous définir "ne fonctionnera pas"? Est-ce qu'il donne un message d'erreur, ou ne retourne rien? Est-ce qu'il arrive réellement à la ligne ExecuteNonQuery, parce que c'est après la pause, mais c'est peut-être parce que vous avez retiré du code. –
aucune erreur, l'int nwok stocke le nombre de lignes affectées, donc si une ligne est ajoutée, elle retournera 1, sinon 0, et je reçois seulement 0. Et si je vérifie ma base de données, la nouvelle ligne n'est pas là. Donc, il n'a rien fait. – Daanvl