读书人

DBHelper类方法求解解决方案

发布时间: 2013-02-15 15:46:56 作者: rapoo

DBHelper类方法求解
本帖最后由 wh_liang 于 2013-01-25 11:58:21 编辑


public static Object exec(string sql, List<SqlParameter> sqlpar, CommandType cmdType, int? OutputIndex)
{
using (conn=new SqlConnection(connStr))
{
cmd = new SqlCommand(sql, conn);
cmd.Parameters.AddRange(sqlpar.ToArray());
cmd.CommandType = cmdType;
if (OutputIndex!=null)
{
cmd.Parameters[(int)OutputIndex].Direction = ParameterDirection.Output;
}
try
{
if (conn.State!=ConnectionState.Open)
{
conn.Open();
}
cmd.ExecuteNonQuery();
if (OutputIndex!=null)
{
return cmd.Parameters[(int)OutputIndex].Value;
}
return null;
}
catch (Exception ex)
{

throw ex;
}
finally
{
conn.Close();


}
}
}


这个方法能否返回自动增长列的值?
怎样调用返回?
调用代码如下
 
public int AddWorkCase(WorkCase model)
{
string sql = "insert into WorkCase values(@Picture,@DescContent)";
List<SqlParameter> sqlpar = new List<SqlParameter>()
{
new SqlParameter("@Picture",model.Picture),
new SqlParameter("@DescContent",model.DescContent),
};
return Convert.ToInt32(DBHelper.DBSQLHelper.exec(sql, sqlpar, CommandType.Text, null));
}

还有一个主见列是ID,现在插入数据可以,要怎样获取ID? sql
[解决办法]

public static object ExecuteScalar(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
{
SqlCommand cmd = new SqlCommand();
using (SqlConnection connection = new SqlConnection(connectionString))
{
PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
object obj2 = cmd.ExecuteScalar();
cmd.Parameters.Clear();
return obj2;
}
}



public static object GetSingle(string sqlStr, params SqlParameter[] commandParameters)
{
return SqlHelper.ExecuteScalar(SqlHelper.ConnectionString, CommandType.Text, sqlStr, commandParameters);
}



string sql = "insert into WorkCase values(@Picture,@DescContent);select @@IDENTITY;";
object id=GetSingle(sql, parameters);

读书人网 >asp.net

热点推荐