SQL命令参数

时间:2015-08-30 04:32:19

标签: c# sql-server asp.net-mvc parameters

我有一个asp.net MVC Web应用程序,它将数据添加到sql数据库。它使用以下代码工作正常:

query = "insert into ImageNameTable(ImageName,NotifyDate,NotifyDate2) values(@ImageName,@NotifyDate,@NotifyDate2)";

SqlParameter StringParameter = new SqlParameter();
StringParameter.SqlDbType = SqlDbType.VarChar;
StringParameter.ParameterName = "@ImageName";
StringParameter.Value = imageName;


DateTime now = DateTime.Now;
now = now.AddMilliseconds(-now.Millisecond);
DateTime notifyDate = now.AddDays(1);

DateTime notify = DateTime.Now;
DateTime aNotify = DateTime.Now;

notify = notify.AddMilliseconds(-notify.Millisecond);
notify = notify.AddMinutes(1);
aNotify = notify.AddMinutes(1);

SqlParameter notifyDateParameter = new SqlParameter();
notifyDateParameter.SqlDbType = SqlDbType.DateTime;
notifyDateParameter.ParameterName = "@NotifyDate";
notifyDateParameter.Value = notify;

SqlParameter notifyDate2Parameter = new SqlParameter();
notifyDate2Parameter.SqlDbType = SqlDbType.DateTime;
notifyDate2Parameter.ParameterName = "@NotifyDate2";
notifyDate2Parameter.Value = aNotify;

SqlCommand cmd = new SqlCommand(query, conn);


cmd.Parameters.Add(StringParameter);
cmd.Parameters.Add(notifyDateParameter);
cmd.Parameters.Add(notifyDate2Parameter);

cmd.ExecuteNonQuery();        
cmd.Dispose();
conn.Close();
conn.Dispose();

这用于测试目的。所以现在我把它改成了我真正想要它做的事情,并且sql数据库中没有出现任何内容。基本上,我所做的就是为sql命令添加参数。没有错误,只是它没有出现在数据库中。这是改变:

query = "insert into ImageNameTable(ImageName,NotifyDate,NotifyDate2,NotifyDate3,NotifyDate4,NotifyDate5,NotifyDate6,NotifyDate7,NotifyDate8,NotifyDate9,NotifyDate10,NotifyDate11,NotifyDate12,NotifyDate13,NotifyDate14) values(@ImageName,@NotifyDate,@NotifyDate2,@NotifyDate3,@NotifyDate4,@NotifyDate5,@NotifyDate6,@NotifyDate7,@NotifyDate8,@NotifyDate9,@NotifyDate10,@NotifyDate11,@NotifyDate12,@NotifyDate13,@NotifyDate14)";


SqlParameter StringParameter = new SqlParameter();
StringParameter.SqlDbType = SqlDbType.VarChar;
StringParameter.ParameterName = "@ImageName";
StringParameter.Value = imageName;

DateTime now = DateTime.Now;
now = now.AddMilliseconds(-now.Millisecond);
DateTime notifyDate = now.AddDays(1);

DateTime notify = DateTime.Now;
DateTime aNotify = DateTime.Now;


notify = notify.AddMilliseconds(-notify.Millisecond);
notify = notify.AddHours(1);
aNotify = notify.AddHours(5);
DateTime bNotify = aNotify.AddDays(1);
DateTime cNotify = bNotify.AddDays(1);
DateTime dNotify = cNotify.AddDays(2);
DateTime eNotify = dNotify.AddDays(2);
DateTime fNotify = eNotify.AddDays(3);
DateTime gNotify = fNotify.AddDays(4);
DateTime hNotify = gNotify.AddDays(7);
DateTime iNotify = hNotify.AddDays(14);
DateTime jNotify = bNotify.AddMonths(2);
DateTime kNotify = bNotify.AddMonths(3);
DateTime lNotify = bNotify.AddMonths(4);
DateTime mNotify = bNotify.AddMonths(6);


SqlParameter notifyDateParameter = new SqlParameter();
notifyDateParameter.SqlDbType = SqlDbType.DateTime;
notifyDateParameter.ParameterName = "@NotifyDate";
notifyDateParameter.Value = notify;

SqlParameter notifyDate2Parameter = new SqlParameter();
notifyDate2Parameter.SqlDbType = SqlDbType.DateTime;
notifyDate2Parameter.ParameterName = "@NotifyDate2";
notifyDate2Parameter.Value = aNotify;

SqlParameter notifyDate3Parameter = new SqlParameter();
notifyDate3Parameter.SqlDbType = SqlDbType.DateTime;
notifyDate3Parameter.ParameterName = "@NotifyDate3";
notifyDate3Parameter.Value = bNotify;

SqlParameter notifyDate4Parameter = new SqlParameter();
notifyDate4Parameter.SqlDbType = SqlDbType.DateTime;
notifyDate4Parameter.ParameterName = "@NotifyDate4";
notifyDate4Parameter.Value = cNotify;

SqlParameter notifyDate5Parameter = new SqlParameter();
notifyDate5Parameter.SqlDbType = SqlDbType.DateTime;
notifyDate5Parameter.ParameterName = "@NotifyDate5";
notifyDate5Parameter.Value = dNotify;

SqlParameter notifyDate6Parameter = new SqlParameter();
notifyDate6Parameter.SqlDbType = SqlDbType.DateTime;
notifyDate6Parameter.ParameterName = "@NotifyDate6";
notifyDate6Parameter.Value = eNotify;

SqlParameter notifyDate7Parameter = new SqlParameter();
notifyDate7Parameter.SqlDbType = SqlDbType.DateTime;
notifyDate7Parameter.ParameterName = "@NotifyDate7";
notifyDate7Parameter.Value = fNotify;

SqlParameter notifyDate8Parameter = new SqlParameter();
notifyDate8Parameter.SqlDbType = SqlDbType.DateTime;
notifyDate8Parameter.ParameterName = "@NotifyDate8";
notifyDate8Parameter.Value = gNotify;

SqlParameter notifyDate9Parameter = new SqlParameter();
notifyDate9Parameter.SqlDbType = SqlDbType.DateTime;
notifyDate9Parameter.ParameterName = "@NotifyDate9";
notifyDate9Parameter.Value = hNotify;

SqlParameter notifyDate10Parameter = new SqlParameter();
notifyDate10Parameter.SqlDbType = SqlDbType.DateTime;
notifyDate10Parameter.ParameterName = "@NotifyDate10";
notifyDate10Parameter.Value = iNotify;

SqlParameter notifyDate11Parameter = new SqlParameter();
notifyDate11Parameter.SqlDbType = SqlDbType.DateTime;
notifyDate11Parameter.ParameterName = "@NotifyDate11";
notifyDate11Parameter.Value = jNotify;

SqlParameter notifyDate12Parameter = new SqlParameter();
notifyDate12Parameter.SqlDbType = SqlDbType.DateTime;
notifyDate12Parameter.ParameterName = "@NotifyDate12";
notifyDate12Parameter.Value = kNotify;

SqlParameter notifyDate13Parameter = new SqlParameter();
notifyDate13Parameter.SqlDbType = SqlDbType.DateTime;
notifyDate3Parameter.ParameterName = "@NotifyDate13";
notifyDate13Parameter.Value = lNotify;

SqlParameter notifyDate14Parameter = new SqlParameter();
notifyDate14Parameter.SqlDbType = SqlDbType.DateTime;
notifyDate14Parameter.ParameterName = "@NotifyDate14";
notifyDate14Parameter.Value = mNotify;


SqlCommand cmd = new SqlCommand(query, conn);


cmd.Parameters.Add(StringParameter);
cmd.Parameters.Add(notifyDateParameter);
cmd.Parameters.Add(notifyDate2Parameter);
cmd.Parameters.Add(notifyDate3Parameter);
cmd.Parameters.Add(notifyDate4Parameter);
cmd.Parameters.Add(notifyDate5Parameter);
cmd.Parameters.Add(notifyDate6Parameter);
cmd.Parameters.Add(notifyDate7Parameter);
cmd.Parameters.Add(notifyDate8Parameter);
cmd.Parameters.Add(notifyDate9Parameter);
cmd.Parameters.Add(notifyDate10Parameter);
cmd.Parameters.Add(notifyDate11Parameter);
cmd.Parameters.Add(notifyDate12Parameter);
cmd.Parameters.Add(notifyDate13Parameter);
cmd.Parameters.Add(notifyDate14Parameter);


cmd.ExecuteNonQuery();       
cmd.Dispose();
conn.Close();
conn.Dispose();

我想知道我是否使用了太多参数,但是我被告知命令可以容纳的最大参数量超过14.有谁知道这里发生了什么?

1 个答案:

答案 0 :(得分:1)

notifyDate3Parameter.ParameterName = "@NotifyDate13"; - 分别在分配标志的左侧和右侧注释3和13。