首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

DBHelper类方法求解解决方案

2013-02-15 
DBHelper类方法求解本帖最后由 wh_liang 于 2013-01-25 11:58:21 编辑public static Object exec(string s

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);

热点排行