解决方案 »

  1.   

    不太懂你的意思,我用的sqlhelper有3个函数
    ExecuteNonQuery——不返回值
    ExecuteReader——返回一个SqlDataReader
    ExecuteScalar——返回一个值
    如果需要读取一系列数据就使用SqlDataReader,自己做统计,然后获得读取的数字
    或者用select count(*) from where XX=XX,配合ExecuteScalar返回一个值即可。
      

  2.   

    return dbsql.RunProcedure(procName, parameters);
    返回的类型是 SqlDataReader是这样的 这个是我用的sqlhelp方法 直接传入存储过程的名字和参数 就可以使用存储过程了
    但是现在我的数据里 我写一个 有返回值的 存储过程  我现在想用这个方法 接收 我那个返回值 不知道该如何做了
      

  3.   

    你的情况我不清楚,我有过类似的经验,和你分享一下。
    我有个类,里面定义的类型有
    Class A{
    string s1;
    string 22;
    int id;
    }
    id是自动增长型的。在用存储过程插入的时候,需要返回所得id号。
    存储类型是这样写的
    Create Procedure a_Insert
    @s1 nvarchar(50),
    @s2 nvarchar(50),
    As
    Begin
    Insert Into a
    ([s1],[s2])
    Values
    (@s1,@s2) Declare @ReferenceID int
    Select @ReferenceID = @@IDENTITY
    Return @ReferenceID
    End
    GO
    然后sqlhelper里面,我另外写一个Insert()函数,可以读取返回值
            public static int Insert(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
            {            SqlCommand cmd = new SqlCommand();            using (SqlConnection conn = new SqlConnection(connectionString))
                {
                    PrepareInsertCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
                    int val = cmd.ExecuteNonQuery();
                    if (val == 1)
                    {
                        val = Convert.ToInt32(cmd.Parameters[0].Value);
                    }
                    else
                    {
                        val = 0;
                    }
                    cmd.Parameters.Clear();
                    return val;
                }
            }使用很简单,就是
    a.id=sqlhelper.insert(**,**,**,**)
    我一次只插入一条记录,获得一个id,希望对你有帮助。
    你说的一次插入很多记录,我没有用过。
      

  4.   


    既然sqlhelper你不会写,那就找其作者给你另外写一个返回 int 的方法吧。
      

  5.   

    http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlcommand.executenonquery(v=vs.110).aspx