由于后台数据库需要有个主键字段才能允许插入、修改、删除,且这个字段不允许重复,请教大家如何自动生成这个主键字段的值?

解决方案 »

  1.   

    你后台数据库表中该主键字段表,有个标识属性,你设置成自动增长即可(前提是该字段是int等整型类型)
      

  2.   

    再:我后台是oracle,在其它语言下,均可直接插入记录,而sqldatasource为什么非要有个主键才行?
    有没有办法不设主键也一样插入记录?
      

  3.   

    原始的SQL/// <summary>
            /// 获取某表的某个字段的最大值
            /// </summary>
            /// <param name="FieldName">字段名</param>
            /// <param name="TableName">表明</param>
            /// <returns>返回最大值</returns>
            public static int GetMaxID(string FieldName, string TableName)
            {
                string strsql = "select max(" + FieldName + ")+1 from " + TableName;
                object obj = SqlHelper.GetSingle(strsql);
                if (obj == null)
                {
                    return 1;
                }
                else
                {
                    return int.Parse(obj.ToString());
                }
            }
            /// <summary>
            /// 执行一条计算查询结果语句,返回查询结果(object)。
            /// </summary>
            /// <param name="SQLString">计算查询结果语句</param>
            /// <returns>查询结果(object)</returns>
            public static object GetSingle(string SQLString)
            {
                using (SqlCommand cmd = new SqlCommand(SQLString, GetConn()))
                {
                    try
                    {
                        object obj = cmd.ExecuteScalar();
                        if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
                        {
                            return null;
                        }
                        else
                        {
                            return obj;
                        }
                    }
                    catch (System.Data.SqlClient.SqlException e)
                    {
                        throw e;
                    }
                }        }
      

  4.   

    他是歌。。
    网上有vb转c#代码的工具,搜一下很多的