示例#1
0
 /// <summary>
 /// 通用插入操作且返回 SELECT @@identity;
 /// INSERT 语句返回当前插入自动增长主键值 SELECT @@identity;
 /// </summary>
 /// <param name="ht">key->更新字段名称;value->更新字段值</param>
 /// <param name="tableName">操作插入表名</param>
 /// <returns>执行状态 成功>0且返回当前插入自动增长主键值;失败返回0;异常-1;参数为空返回-2</returns>
 public static int DynamicInsert(Hashtable ht, string tableName)
 {
     if (ht == null || string.IsNullOrEmpty(tableName))
     {
         return(-2);
     }
     #region
     StringBuilder         sbRet = new StringBuilder("INSERT INTO [" + tableName + "] (");
     IDictionaryEnumerator ienum = ht.GetEnumerator();
     while (ienum.MoveNext())
     {
         sbRet.Append(ienum.Key.ToString() + ",");
     }
     sbRet = new StringBuilder(sbRet.ToString().TrimEnd(','));
     sbRet.Append(") values (");
     SqlParameter[]        parameters = new SqlParameter[ht.Keys.Count];
     int                   index      = 0;
     IDictionaryEnumerator ienum2     = ht.GetEnumerator();
     while (ienum2.MoveNext())
     {
         sbRet.Append("@" + ienum2.Key.ToString() + ",");
         parameters[index] = new SqlParameter("@" + ienum2.Key, ienum2.Value);
         index++;
     }
     sbRet = new StringBuilder(sbRet.ToString().TrimEnd(','));
     sbRet.Append(");SELECT @@identity;");
     string safeSql = sbRet.ToString();
     try
     {
         int result = DbHelperSql.ExecuteScalar(CommandType.Text, safeSql, parameters);
         return(result);
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.Message);
         return(-1);
     }
     #endregion
 }