//添加产品
    protected void cmdAdd_Click(object sender, EventArgs e)
    {
        _waresmodel.会员 = _model.UserId;
        _waresmodel.公司名称 = txtgsmcName.Text;
        _waresmodel.产品 = txtcpVariety.Text.Trim();
          //判断是否为修改状态
        if (_isfabu)
        {
            Javascript.alert(SQLWare.SQLku.Add(_waresmodel) > 0 ? "添加成功!" : "失败,请重试!");
        }
        else
        {        }
    }
//这是接数据库的
namespace SQLWare
{
    using System;
    using System.Data;
    using System.Data.SqlClient;
    public class SQLku
    {
        public static int Add(ModelWare.ModelWares model)
        {
            SqlParameter[] commandParameters = new SqlParameter[] { new SqlParameter("@UserID", SqlDbType.VarChar, 20), new SqlParameter("@gsmc", SqlDbType.NVarChar, 50), new SqlParameter("@cp", SqlDbType.VarChar, 50)};
            commandParameters[0].Value = model.会员;
            commandParameters[1].Value = model.公司名称;
            commandParameters[2].Value = model.产品;
            return SqlHelper.ExecuteNonQuery(ConnString.Waresconn, CommandType.StoredProcedure, "[dbo].[Add数据库]", commandParameters);
        }
 }
//这是数据库的存储过程
ALTER PROCEDURE [dbo].[Add数据库]
DECLARE @i int 
Set @i = 0 
--开始循环插入数据; 
 WHILE @i < 3 
 BEGIN 
 Set @i =@i +1  INSERT INTO dbo.产品库
(ID, UserID1, gsmc1, cp1)
VALUES
(NEWID(), @UserID, @gsmc, @cp);
END
END表单多条数据插入

解决方案 »

  1.   

    http://social.msdn.microsoft.com/Forums/en-US/sqldataaccess/thread/239b3f5b-95cf-4da9-9a8d-ef150fd4051d
    公历→农历
    2013年06月12日
    双子座
    二〇一三年五月初五
    癸巳〖蛇〗,戊午月,己酉日,乙亥时
    今属:土;五行:水火土金木;缺:。
    纳音五行:长流水。
      

  2.   

    上面链接是说明如何使用SqlHelper类的一些资料,觉得写得还可参考,你是英文看不懂?英文看不懂可以右击翻译!
      

  3.   

    //批量插入数据
        protected void cmdAdd_Click(object sender, EventArgs e)
        {        _waresmodel.MemberID = _model.UserId;
            _waresmodel.CompanyName = txtCorporationName.Text;        //判断是否为修改状态
            if (_isfabu)
            {
                Javascript.alert(SQLWare.SQLWares.AddWares(_waresmodel) > 0 ? "添加成功!" : "失败,请重试!");
            }
            else
            {
                。。
            }
        }//数据库SQLhelp:
    namespace SQLWare
    {
        using System;
        using System.Data;
        using System.Data.SqlClient;    public class SQLWares
        {
            public static int AddWares(ModelWare.ModelWares model)
            {
                SqlParameter[] commandParameters = new SqlParameter[] { new SqlParameter("@memberID", SqlDbType.NVarChar, 20), new SqlParameter("@corporationName", SqlDbType.NVarChar, 50)};
                
                commandParameters[0].Value = model.MemberID;
                commandParameters[1].Value = model.CompanyName;                 return SqlHelper.ExecuteNonQuery(ConnString.Waresconn, CommandType.StoredProcedure, "[dbo].[AddWares]", commandParameters);
            }
    。。
    //数据库SQL存储过程:
    set ANSI_NULLS ON
    set QUOTED_IDENTIFIER ON
    goALTER PROCEDURE [dbo].[AddWares]
    (
    @memberID nvarchar(20) = N'',  --会员ID
    @corporationName nvarchar(50) = N'',    --公司名称
    )
    AS
    BEGINDECLARE @i int 
    Set @i = 0 
    --开始循环插入数据; 
     WHILE @i < 3 
     BEGIN 
     Set @i =@i +1 INSERT INTO dbo.Wares (ID, MemberID, CorporationName)   VALUES   (NEWID(), @memberID, @corporationName)ENDEND上面是源码,关键是.NET里不会循环,比如插入3条,变成了一行:
        列memberID                   列corporationName
    会员id1,会员id2,会员id3          公司名称1,公司名称2,公司名称3我想变成这样的,也就是正常的:
        列memberID                   列corporationName
    会员id1                          公司名称1
    会员id2                          公司名称2
    会员id3                          公司名称3
    修改了1天,我不会.NET编程,自己的网站必须自己搞,小站长不容易啊
      

  4.   


    NET里循环,比在SQL里好用多了。还不容易出错
    INSERT INTO dbo.Wares (ID, MemberID, CorporationName)   VALUES   (NEWID(), @memberID, @corporationName)
    这个句子看不出有什么问题.
      

  5.   

    主要是aspx.cs里循环不会写,
            for (int i = 0; i < 100; i++)
                {
                commandParameters[0].Value = model.MemberID[i];
                commandParameters[1].Value = model.CompanyName[i];
                }
    或者:        for (int i = 0; i < 100; i++)
                {
            _waresmodel.MemberID = _model.UserId;
            _waresmodel.CompanyName = txtCorporationName.Text;
                }
    都试过了,不行,继续坐等答案,谢谢您啊!
      

  6.   

    在存储过程里循环带来的问题是 每次循环都是插入一条相同的数据 只是ID不同而已 因为你每次传值只能传一组
    如果是单纯的编号的话 用下面这段代码可能会事半功倍            /*
                 *  设计数据表 表结构与将要插入数据的表结构对应
                 *  如果数据库中设置自增列则可以忽略该列 只设计需要插入的字段
                 */
                DataTable dt = new DataTable();
                //我测试用的数据表 一个名字 一个分数
                dt.Columns.Add("SourceName", typeof(string));
                dt.Columns.Add("SourceScore", typeof(int));
                //循环500条数据 添加到数据表中
                for (int i = 0; i < 500; i++)
                {
                    DataRow dr = dt.NewRow();
                    dr["SourceName"] = i.ToString();
                    dr["SourceScore"] = (i + 1).ToString();
                    dt.Rows.Add(dr);
                }            //创建数据库连接
                using (SqlConnection con = new SqlConnection(ConString))
                {
                    con.Open();
                    //声明SqlBulkCopy ,using释放非托管资源
                    using (SqlBulkCopy sbc = new SqlBulkCopy(con))
                    {
                        //一次批量的插入的数据量
                        sbc.BatchSize = 1000;
                        //超时之前操作完成所允许的秒数,如果超时则事务不会提交 ,数据将回滚,所有已复制的行都会从目标表中移除
                        sbc.BulkCopyTimeout = 60;                    //要插入数据的表
                        sbc.DestinationTableName = "test";                    //设置 NotifyAfter 属性,每插入10000条数据时,执行相应事件(比如提示,或执行你需要的事件 这里我没设置)
                        //sbc.NotifyAfter = 10000;
                        //sbc.SqlRowsCopied += new SqlRowsCopiedEventHandler(OnSqlRowsCopied);                    //自定义数据表和数据库表的映射 为了区分 自定义表的列名前面用Source
                        sbc.ColumnMappings.Add("SourceName", "Name");
                        sbc.ColumnMappings.Add("SourceScore", "Score");                    //向服务器插入数据
                        sbc.WriteToServer(dt);
                    }
                }
      

  7.   

    满意答案在底部:http://bbs.csdn.net/topics/390487903