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

念插入记录返回自动生成的编号,语句无效

2013-07-20 
想插入记录返回自动生成的编号,语句无效目的:新建一个试卷,插入试卷名称,试卷ID为自动生成,返回试卷ID,代

想插入记录返回自动生成的编号,语句无效
目的:新建一个试卷,插入试卷名称,试卷ID为自动生成,返回试卷ID,代码如下,问题是没有插入记录,也没有报错,请大家看看:


string SavePaper()
    {
        string sQUES_ID = "";
        connection.Open();
        sSql = "insert into t_Paper where values('" + txtPaperName.Text.Trim() + "');"
               + "select @@identity as paper_id";
        SqlCommand cmd = new SqlCommand(sSql, connection);
        SqlDataReader dr = cmd.ExecuteReader();
        if (dr.Read())
            sQUES_ID = dr["paper_id"].ToString();
        connection.Close();
        return sQUES_ID;
    }

[解决办法]
引用:
目的:新建一个试卷,插入试卷名称,试卷ID为自动生成,返回试卷ID,代码如下,问题是没有插入记录,也没有报错,请大家看看:

string SavePaper()
    {
        string sQUES_ID = "";
        connection.Open();
        sSql = "insert into t_Paper where values('" + txtPaperName.Text.Trim() + "');"
               + "select @@identity as paper_id";
        SqlCommand cmd = new SqlCommand(sSql, connection);
        SqlDataReader dr = cmd.ExecuteReader();
        if (dr.Read())
            sQUES_ID = dr["paper_id"].ToString();
        connection.Close();


        return sQUES_ID;
    }

string SavePaper()
        {
            string sQUES_ID = "";
            connection.Open();
            sSql = "insert into t_Paper where values('" + txtPaperName.Text.Trim() + "');"
                   + "select @@identity as paper_id";
            SqlCommand cmd = new SqlCommand(sSql, connection);
            object obj = cmd.ExecuteScalar();
            sQUES_ID = obj.ToString();
            connection.Close();
            return sQUES_ID;
        }

[解决办法]
@@identity  默认是ID 列  你插String 肯定没有INSERT 
执行是可以的
[解决办法]
引用:
Quote: 引用:

目的:新建一个试卷,插入试卷名称,试卷ID为自动生成,返回试卷ID,代码如下,问题是没有插入记录,也没有报错,请大家看看:

string SavePaper()
    {
        string sQUES_ID = "";
        connection.Open();
        sSql = "insert into t_Paper where values('" + txtPaperName.Text.Trim() + "');"
               + "select @@identity as paper_id";
        SqlCommand cmd = new SqlCommand(sSql, connection);
        SqlDataReader dr = cmd.ExecuteReader();
        if (dr.Read())
            sQUES_ID = dr["paper_id"].ToString();
        connection.Close();


        return sQUES_ID;
    }

string SavePaper()
        {
            string sQUES_ID = "";
            connection.Open();
            sSql = "insert into t_Paper where values('" + txtPaperName.Text.Trim() + "');"
                   + "select @@identity as paper_id";
            SqlCommand cmd = new SqlCommand(sSql, connection);
            object obj = cmd.ExecuteScalar();
            sQUES_ID = obj.ToString();
            connection.Close();
            return sQUES_ID;
        }

上面的where去掉 我是用你之前写的语句的
[解决办法]
引用:
@@identity  默认是ID 列  你插String 肯定没有INSERT 
执行是可以的


sSql = "insert into t_Paper values('" + txtPaperName.Text.Trim() + "');"
                   + "select @@identity as paper_id";



try
[解决办法]
不需要列名为id
@@IDENTITY、SCOPE_IDENTITY 和 IDENT_CURRENT 是相似的函数,因为他们都返回插入到表的 IDENTITY 列的最后一个值。即自增长列的最后的值.
[解决办法]
引用:
Quote: 引用:

Quote: 引用:

@@identity  默认是ID 列  你插String 肯定没有INSERT 
执行是可以的


sSql = "insert into t_Paper values('" + txtPaperName.Text.Trim() + "');"
                   + "select @@identity as paper_id";




try

这个,和我原先的代码是一样的呀,,,感觉没执行insert语句,是不是insert不能用ExecuteReader()?

我上面不是给你一个方法了么 你试了么?
[解决办法]
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

Quote: 引用:

@@identity  默认是ID 列  你插String 肯定没有INSERT 
执行是可以的


sSql = "insert into t_Paper values('" + txtPaperName.Text.Trim() + "');"
                   + "select @@identity as paper_id";



try

这个,和我原先的代码是一样的呀,,,感觉没执行insert语句,是不是insert不能用ExecuteReader()?

我上面不是给你一个方法了么 你试了么?

试了,没有插进去

这个表就两个字段了
[解决办法]
用ExecuteScalar()返回的值就是该记录的id了
[解决办法]
你把语句提取出来放到 SQL里执行一次就知道问题在哪了。
[解决办法]
好怪的写法, int id = DBHelper.GetScalar(sql).ToString();  这样不就返回了。
 public static int GetScalar(string safeSql)
    {
        SqlCommand cmd = new SqlCommand(safeSql, Connection);
        int result = Convert.ToInt32(cmd.ExecuteScalar());
        connection.Close();
        return result;
    }

热点排行