0
点赞
收藏
分享

微信扫一扫

ASP.NET批量插入数据


 



精华推荐: ​​帮忙写个算法:两个递增数列排序后求第n个数​​



C# code



SqlDataAdapter ad
=

new
SqlDataAdapter(
"
select top 1 * from users where 1<>1
"
, sqlconn);
//
取个结构


DataTable dt
=

new
DataTable();
SqlCommandBuilder cmb
=

new
SqlCommandBuilder(ad);
//
这一句很关键,必不可少。


ad.Fill(dt);

int
i;

for
(i
=

1
; i
<

10
; i
++
)
{
DataRow dr
=
dt.NewRow();
dr[
"
uid
"
]
=

"
nid
"

+
i.ToString();
dt.Rows.Add(dr);
}
ad.Update(dt);



 



  • ​​ASP.NET批量插入数据_asp.net​​
  • ​​HDNGO​​
  • (礼拜一)

  • 等 级:


#3楼 得分:0回复于:2009-01-07 23:55:22




  • ​​对我有用​​[0]
  • ​​丢个板砖​​[0]
  • ​​引用​​
  • ​​举报​​
  • ​​管理​​
  • ​​TOP​​

精华推荐: ​​请教msdn上关于拆箱的解释​​


先用1<>1的条件做个空的DS,这样你就不用手动做一个DataTable了~~

数据弄脏以后,Update就可以插入了~

 



  • ​​ASP.NET批量插入数据_dataset_02​​
  • ​​rainxieyue​​
  • (rainxieyue)

  • 等 级:



#4楼 得分:0回复于:2009-01-08 00:02:52




  • ​​对我有用​​[0]
  • ​​丢个板砖​​[0]
  • ​​引用​​
  • ​​举报​​
  • ​​管理​​
  • ​​TOP​​

精华推荐: ​​【讨论】★★★★★难度!!如何在WINDOWS启动的时候,用户准备输入密码的时候,运行并且显示程序?​​



引用 2 楼 HDNGO 的回复:
C# codeSqlDataAdapter ad=newSqlDataAdapter("select top 1 * from users where 1<>1", sqlconn);//取个结构DataTable dt=newDataTable();
SqlCommandBuilder cmb=newSqlCommandBuilder(ad);//这一句很关键,必不可少。ad.Fill(dt);inti;for(i=1; i<10; i++)
{
DataRow dr=dt.NewRow();
dr["uid"]="nid"+i.ToString();
dt.Rows.Add(dr);


我是要将一个DATASET里的数据导进去请问我有数据的DATASEY怎么给他?

这个ad.Update(dt)里的dt不是从数据取出的结构吗?~1

麻烦你讲的在详细点好吗

搞定马上给分


 



  • ​​ASP.NET批量插入数据_asp.net​​
  • ​​HDNGO​​
  • (礼拜一)

  • 等 级:


#5楼 得分:0回复于:2009-01-08 00:12:05




  • ​​对我有用​​[0]
  • ​​丢个板砖​​[0]
  • ​​引用​​
  • ​​举报​​
  • ​​管理​​
  • ​​TOP​​

精华推荐: ​​[攒分贴]每日小知识​​


给你我的测试过程~~

1.建立表test~表中只有一列ID,int型~

2.建立控制台项目InsertData~

3.代码如下~


using System; using System.Collections.Generic; using System.Text; using System.Data.SqlClient; using System.Data; namespace InsertData{ class Program { static void Main( string [] args) { string sqlconn = " server=127.0.0.1;user id=sa;password=xxx;database=test; " ; SqlDataAdapter ad = new SqlDataAdapter( " select top 1 * from test where 1<>1 " , sqlconn); // 取个结构 DataTable dt = new DataTable(); SqlCommandBuilder cmb = new SqlCommandBuilder(ad); // 这一句很关键,必不可少。 ad.Fill(dt); for ( int i = 1 ; i < 10 ; i ++ ) { DataRow dr = dt.NewRow(); dr[ " id " ] = i; dt.Rows.Add(dr); } ad.Update(dt); Console.WriteLine( " OK " ); Console.Read(); } }}




运行后test表中有10行新加入数据~



OVER~


 



  • ​​ASP.NET批量插入数据_asp.net​​
  • ​​HDNGO​​
  • (礼拜一)

  • 等 级:


    #6楼 得分:0回复于:2009-01-08 00:14:20




    • ​​对我有用​​[0]
    • ​​丢个板砖​​[0]
    • ​​引用​​
    • ​​举报​​
    • ​​管理​​
    • ​​TOP​​



    ad.Fill(dt);//这句的时候,DataTable是空的~

    ad.Update(dt);//这个时候,已经ADD了10条数据在DataTable里了~

    这个时候,Update就可以把数据插入了~

     



    • ​​ASP.NET批量插入数据_dataset_02​​
    • ​​rainxieyue​​
    • (rainxieyue)

    • 等 级:


      #7楼 得分:0回复于:2009-01-08 00:19:55




      • ​​对我有用​​[0]
      • ​​丢个板砖​​[0]
      • ​​引用​​
      • ​​举报​​
      • ​​管理​​
      • ​​TOP​​



      大哥我按你的方法写了
      可是表里如果又有INT又有varchar
      就会报输入字符串的格式不正确。 
      我给你看下我的代码你看能不能
      把一个TABLE的ROW直接附给另一个TABLE


      SqlConnection conn = new SqlConnection(str); conn.Open(); SqlDataAdapter da = new SqlDataAdapter( " select top 1 * from wind where 1<>1 " , conn); DataTable dt = xls_to_dtab(FileUpload1.PostedFile.FileName).Tables[ 0 ]; DataTable dtt = new DataTable(); da.Fill(dtt); SqlCommandBuilder cmd = new SqlCommandBuilder(da); da.Fill(dt); for ( int i = 1 ; i < dt.Rows.Count; i ++ ) { dtt.Rows.Add(dt.Rows[i].ToString()); } da.Update(dtt);



       



      • ​​ASP.NET批量插入数据_dataset_02​​
      • ​​rainxieyue​​
      • (rainxieyue)

      • 等 级:



      #8楼 得分:0回复于:2009-01-08 00:20:45




      • ​​对我有用​​[0]
      • ​​丢个板砖​​[0]
      • ​​引用​​
      • ​​举报​​
      • ​​管理​​
      • ​​TOP​​



      我在线等你的消息大哥一定帮帮忙哦

       



      • ​​ASP.NET批量插入数据_asp.net​​
      • ​​HDNGO​​
      • (礼拜一)

      • 等 级:


      #9楼 得分:0回复于:2009-01-08 00:27:56




      • ​​对我有用​​[0]
      • ​​丢个板砖​​[0]
      • ​​引用​​
      • ​​举报​​
      • ​​管理​​
      • ​​TOP​​



      你的两个表的结构给我看看~

       



      • ​​ASP.NET批量插入数据_dataset_02​​
      • ​​rainxieyue​​
      • (rainxieyue)

      • 等 级:



      #10楼 得分:0回复于:2009-01-08 00:28:41




      • ​​对我有用​​[0]
      • ​​丢个板砖​​[0]
      • ​​引用​​
      • ​​举报​​
      • ​​管理​​
      • ​​TOP​​



      dtt.Rows.Add(dt.Rows[i].ItemArray);
      我解决了
      可是记录依然没有添加到数据库里啊~!
      这是怎么会事呀?
      能帮我下么

       



      • ​​ASP.NET批量插入数据_dataset_02​​
      • ​​rainxieyue​​
      • (rainxieyue)

      • 等 级:



      #11楼 得分:0回复于:2009-01-08 00:30:42




      • 对我有用[0]
      • ​​丢个板砖​​[0]
      • ​​引用​​
      • ​​举报​​
      • ​​管理​​
      • ​​TOP​​



      CREATE TABLE[wind](
      [id] [int] IDENTITY(1,1)PRIMARY KEY NOT NULL,
      [Name] [varchar](20) COLLATE Chinese_PRC_CI_AS NULL,
      [code] [int] NULL,
      [NickName] [varchar](20) COLLATE Chinese_PRC_CI_AS NULL,
      [Title] [varchar](20) COLLATE Chinese_PRC_CI_AS NULL,
      [http] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL
      )
      还有个是XLS文件里读出来的
      文件里数据是
      sadsad 213 xcxz xccxz zxcxz
      asd 23 xczc asd cxzcs
      cxzc 421 cxzcs dwcx zxcxzc
      csacsa 532 cxzcsa ewdxzcx xzcsdsaca

       



      • ​​ASP.NET批量插入数据_asp.net​​
      • ​​HDNGO​​
      • (礼拜一)

      • 等 级:


      #12楼 得分:0回复于:2009-01-08 00:50:47





      string sqlconn = " server=127.0.0.1;user id=sa;password=123;database=test; " ; SqlDataAdapter ad = new SqlDataAdapter( " select Name,code,NickName,Title,http from wind where 1<>1 " , sqlconn); // 取个结构 DataTable dt = new DataTable(); SqlCommandBuilder cmb = new SqlCommandBuilder(ad); // 这一句很关键,必不可少。 ad.Fill(dt); // 由于没有XLS数据,自己凑了一行数据出来,你那块这里直接写你的就成 // 凑数据开始 DataTable dtSouce = new DataTable(); dtSouce.Columns.Add( " Name " , typeof ( string )); dtSouce.Columns.Add( " code " , typeof ( string )); dtSouce.Columns.Add( " NickName " , typeof ( string )); dtSouce.Columns.Add( " Title " , typeof ( string )); dtSouce.Columns.Add( " http " , typeof ( string )); DataRow drSouce = dtSouce.NewRow(); drSouce[ " Name " ] = " aaa " ; drSouce[ " code " ] = " 123 " ; drSouce[ " NickName " ] = " fff " ; drSouce[ " Title " ] = " eee " ; drSouce[ " http " ] = " ccc " ; dtSouce.Rows.Add(drSouce); // 凑数据结束 // 你可以用你的DataTable dtSouce = xls_to_dtab(FileUpload1.PostedFile.FileName).Tables[0]; // 来代替上边的开始到结束 for ( int i = 0 ; i < dtSouce.Rows.Count; i ++ ) { DataRow dr = dt.NewRow(); dr[ " Name " ] = dtSouce.Rows[i][ 0 ].ToString(); dr[ " code " ] = int .Parse(dtSouce.Rows[i][ 1 ].ToString()); // 对int进行转型~ dr[ " NickName " ] = dtSouce.Rows[i][ 2 ].ToString(); dr[ " Title " ] = dtSouce.Rows[i][ 3 ].ToString(); dr[ " http " ] = dtSouce.Rows[i][ 4 ].ToString(); dt.Rows.Add(dr); } ad.Update(dt); Console.WriteLine( " OK " ); Console.Read();



      举报

      相关推荐

      0 条评论