110,536
社区成员
发帖
与我相关
我的任务
分享
StringBuilder strSql = new StringBuilder();
strSql.Append("insert into YyInfo(");
strSql.Append("IfConcel,SPID,CgDay,CgTime,PeopNum,UnitName,AddressID,YyName,YyPhoneNum,UserID");
strSql.Append(") values (");
strSql.Append("@IfConcel,@SPID,@CgDay,@CgTime,@PeopNum,@UnitName,@AddressID,@YyName,@YyPhoneNum,@UserID");
strSql.Append(") ");
strSql.Append(";");
//strSql.Append(";select @@IDENTITY");
SqlParameter[] parameters = {
new SqlParameter("@IfConcel", SqlDbType.Int,4) ,
new SqlParameter("@SPID", SqlDbType.Int,4) ,
new SqlParameter("@CgDay", SqlDbType.DateTime) ,
new SqlParameter("@CgTime", SqlDbType.Char,20) ,
new SqlParameter("@PeopNum", SqlDbType.Int,4) ,
new SqlParameter("@UnitName", SqlDbType.Char,50) ,
new SqlParameter("@AddressID", SqlDbType.Int,4) ,
new SqlParameter("@YyName", SqlDbType.Char,50) ,
new SqlParameter("@YyPhoneNum", SqlDbType.Char,20) ,
new SqlParameter("@UserID", SqlDbType.Int,4)
};
parameters[0].Value = model.IfConcel;
parameters[1].Value = model.SPID;
parameters[2].Value = model.CgDay;
parameters[3].Value = model.CgTime;
parameters[4].Value = model.PeopNum;
parameters[5].Value = model.UnitName;
parameters[6].Value = model.AddressID;
parameters[7].Value = model.YyName;
parameters[8].Value = model.YyPhoneNum;
parameters[9].Value = model.UserID;
object obj = SQLHelper.GetSingle(strSql.ToString(), parameters);
if (obj == null)
{
return 0;
}
else
{
return Convert.ToInt32(obj);
}
public static int ExecuteSql(string SQLString, params SqlParameter[] cmdParms)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlCommand cmd = new SqlCommand())
{
try
{
PrepareCommand(cmd, connection, null, SQLString, cmdParms);
cmd.Parameters.AddRange(cmdParms);//这里报错
int rows = cmd.ExecuteNonQuery();
[/quote]
哥是真醉了!
1、SqlCommand是引用类型,你在PrepareCommand方法已赋值,你还再AddRange一次干神马呢?
2、PrepareCommand执行完,cmd已经添加cmdParms了[/quote]
非常感谢你的帮助,我把这句话注释了,就好了,是我写的时候没有注意,调试的时候就忘记了。谢谢
public static int ExecuteSql(string SQLString, params SqlParameter[] cmdParms)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlCommand cmd = new SqlCommand())
{
try
{
PrepareCommand(cmd, connection, null, SQLString, cmdParms);
cmd.Parameters.AddRange(cmdParms);//这里报错
int rows = cmd.ExecuteNonQuery();
[/quote]
哥是真醉了!
1、SqlCommand是引用类型,你在PrepareCommand方法已赋值,你还再AddRange一次干神马呢?
2、PrepareCommand执行完,cmd已经添加cmdParms了
public static int ExecuteSql(string SQLString, params SqlParameter[] cmdParms)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlCommand cmd = new SqlCommand())
{
try
{
PrepareCommand(cmd, connection, null, SQLString, cmdParms);
cmd.Parameters.AddRange(cmdParms);//这里报错
int rows = cmd.ExecuteNonQuery();
private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, string cmdText, SqlParameter[] cmdParms)
{
if (conn.State != ConnectionState.Open)
conn.Open();
cmd.Connection = conn;
cmd.CommandText = cmdText;
if (trans != null)
cmd.Transaction = trans;
cmd.CommandType = CommandType.Text;//cmdType;
if (cmdParms != null)
{
//cmd.Parameters.Clear();
foreach (SqlParameter parameter in cmdParms)
{
if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) &&
(parameter.Value == null))
{
parameter.Value = DBNull.Value;
}
cmd.Parameters.Add(parameter);
cmd.Parameters.Clear();
}
}
public static object GetSingle(string SQLString, params SqlParameter[] cmdParms)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlCommand cmd = new SqlCommand())
{
try
{
cmd.Parameters.Clear();
PrepareCommand(cmd, connection, null, SQLString, cmdParms);
object obj = cmd.ExecuteScalar();
cmd.Parameters.Clear();
if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
{
return null;
}
else
{
return obj;
}
}
catch (System.Data.SqlClient.SqlException e)
{
throw e;
}
}
}
}