我有这个存储过程不起作用。如果我在管理工作室尝试使用填充的参数在管理工作室中查询此作品,我看不到我的代码中是否做了任何错误,但我希望这里有人确实注意到我在做错事C#sql server 2008 r2插入存储过程将不起作用
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
和C#代码:
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();
所以我希望有人能够帮助日Thnx提前!
它会抛出一个特定的错误吗? – Xavinou 2011-02-17 14:28:13
你能定义“不行”吗?它是否提供了错误信息,或者没有返回任何内容?它是否真的到达了ExecuteNonQuery行,因为它在中断之后,但可能是因为你剪掉了一些代码。 – 2011-02-17 14:29:06
没有错误,int nwok存储的是受影响的行数,所以如果添加了一行,它将返回1,如果不是0,并且我只能得到0.如果检查我的数据库,新行不存在。所以它没有做任何事情。 – Daanvl 2011-02-17 14:31:50