c#winform 的dataset的datatable中怎么手动添加行

c#winform 的dataset的datatable中怎么手动添加行,第1张

========== 方法一

DataTable tblDatas = newDataTable("Datas")

DataColumn dc = null

//赋值给dc,是便于对每一个datacolumn的 *** 作

dc =tblDatas.Columns.Add("ID",Type.GetType("System.Int32"))

dc.AutoIncrement= true//自动增加

dc.AutoIncrementSeed = 1//起始为1

dc.AutoIncrementStep = 1//步长为1

dc.AllowDBNull = false//

dc = tblDatas.Columns.Add("Product",Type.GetType("System.String"))

dc = tblDatas.Columns.Add("Version",Type.GetType("System.String"))

dc = tblDatas.Columns.Add("Description",Type.GetType("System.String"))

DataRow newRow

newRow = tblDatas.NewRow()

newRow["Product"] = "大话西游"

newRow["Version"] = "2.0"

newRow["Description"] = "我很喜欢"

tblDatas.Rows.Add(newRow)

newRow = tblDatas.NewRow()

newRow["Product"] = "梦幻西游"

newRow["Version"] = "3.0"

newRow["Description"] = "比大话更幼稚"

tblDatas.Rows.Add(newRow)

========== 方法二

DataTable tblDatas = newDataTable("Datas")

tblDatas.Columns.Add("ID", Type.GetType("System.Int32"))

tblDatas.Columns[0].AutoIncrement = true

tblDatas.Columns[0].AutoIncrementSeed = 1

tblDatas.Columns[0].AutoIncrementStep = 1

tblDatas.Columns.Add("Product",Type.GetType("System.String"))

tblDatas.Columns.Add("Version",Type.GetType("System.String"))

tblDatas.Columns.Add("Description",Type.GetType("System.String"))

tblDatas.Rows.Add(newobject[]{null,"a","b","c"})

tblDatas.Rows.Add(newobject[] { null, "a", "b", "c" })

tblDatas.Rows.Add(new object[] { null, "a", "b", "c" })

tblDatas.Rows.Add(new object[] { null, "a", "b", "c" })

tblDatas.Rows.Add(new object[] { null, "a", "b", "c" })

========== 方法三

DataTable table = new DataTable ()

//创建table的第一列

DataColumn priceColumn = new DataColumn()

//该列的数据类型

priceColumn.DataType = System.Type.GetType("System.Decimal")

//该列得名称

priceColumn.ColumnName = "price"

//该列得默认值

priceColumn.DefaultValue =50

// 创建table的第二列

DataColumn taxColumn = new DataColumn()

taxColumn.DataType = System.Type.GetType("System.Decimal")

//列名

taxColumn.ColumnName = "tax"

//设置该列得表达式,用于计算列中的值或创建聚合列

taxColumn.expression_r_r = "price *0.0862"

// Create third column.

DataColumn totalColumn = new DataColumn()

totalColumn.DataType = System.Type.GetType("System.Decimal")

totalColumn.ColumnName = "total"

//该列的表达式,值是得到的是第一列和第二列值得和

totalColumn.expression_r_r = "price + tax"

// 将所有的列添加到table上

table.Columns.Add(priceColumn)

table.Columns.Add(taxColumn)

table.Columns.Add(totalColumn)

//创建一行

DataRow row = table.NewRow()

//将此行添加到table中

table.Rows.Add(row)

//将table放在试图中

DataViewview = new DataView(table)

dg.DataSource = view

dg.DataBind()

c#如何将dataset中的数据批量导入oracle数据库

public void MultiInsertData(DataSet ds)

{

string connt = "Oracle的连接字符串"

string sql = "select id,name,… from tablename"必须与ds中的一致

DataTable dt = ds.Defaults[0]

OracleConnection conn = new OracleConnection(connstr)

OracleCommand cmd = new OracleCommand(sql, conn)

conn.Open()

OracleDataAdapter da = new OracleDataAdapter(sqlcmd)

OracleCommandBuilder cb = new OracleCommandBuilder(sqlda)

da.Update(dt)

conn.Close()

sqlconn.Dispose()

}

用这个批量进行导入,速度快,而且方便呀

那你直接用Excel导入oracle数据库咯。

我那时50多个字段也还是insert语句实现的,那个Excel有200000条数据,就是循环了一分多钟都insert进去了。

如何将数据批量导入Oracle数据库?

先确保你要导入的数据库SID中有和你导出数据时所用的用户和密码.如果没有请看 2),

1)进入命令控制台,

输入:

imp username/password@SID file=/pathURL full=y

其中username为用户名,password为密码,pathURL导出数据所在路径,

如:

impr scott/tiger@orcl file=D:\data.dmp

需要注意的是,你要导入的表的表空间所属的用户和密码必须和你要导入到的表空间所属的用户和密码相同,就是你导出数据时用的哪个用户,导入时也用哪个用户,

2)

如果没有这个用户,创建用户命令如下:

以sysdba 进入sqlplus,

create user identified by password

grant dba to user

如何将excel数据批量导入sql数据库

请参阅

将EXCEL数据表导入到SQL中

:jingyan.baidu./article/358570f66145a6ce4724fcba.

如何将excel的数据导入到oracle数据库

导入Excel表格

1.创建表,表的字段与要导入文件的名称一致

2.点击 工具---->ODBC导入器

3.选择Excel file 点击连接

4.选择要导入的文件,点击确定

5.点击 到Oracle 在所有者中选择到自己之前创建的表格 按下回车键

查看对应的字段名是否相对应 最后单击导入

如何将一个txt文档的数据批量导入到数据库?

编写和执行存贮过程:

CREATE PROCEDURE IMPORTTXT

@DBNAME VARCHAR(100)--数据库名

AS

DECLARE @SQLSTRING NVARCHAR(1000)

Set @SqlString=N'Master..xp_CmdShell ''bcp '+@dbname+'.DBO.TABLENAME in C:\CSVFILE.TXT -c -S'+@@servername+' -USA -P'''

execute sp_executesql @SqlString

GO

该过程将C:\CSVFILE.TXT 导入到TABLENAME表中,要求字段结构相符。TXT文档要求是以制表符为字段间隔符,换行为记录间隔。可以直接使用EXCEL导出的“以制表符分隔的文本文档”,或将文本文档转换成该格式。

转载:如何将Excel数据批量导入SQL数据库

namespace WindowsApplication2{public partial class Form1 : Form{public Form1(){InitializeComponent()}private void button1_Click(object sender, EventArgs e){测试,将excel中的sheet1导入到sqlserver中

string connString = server=localhostuid=sapwd=sqlgisdatabase=master

System.Windows.Forms.OpenFileDialog fd = new OpenFileDialog()

if (fd.ShowDialog() == DialogResult.OK){TransferData(fd.FileName, sheet1″, connString)}}public void TransferData(string excelFile, string sheetName, string connectionString){DataSet ds = new DataSet()try{获取全部数据

string strConn = Provider=Microsoft.Jet.OLEDB.4.0+ Data Source= + excelFile + + Extended Properties=Excel 8.0

OleDbConnection conn = new OleDbConnection(strConn)

conn.Open()

string strExcel =

OleDbDataAdapter myCommand = null

strExcel = string.Format(select * from [{0}$], sheetName)

myCommand = new OleDbDataAdapter(strExcel, strConn)

myCommand.Fill(ds, sheetName)

如果目标表不存在则创建

string strSql = string.Format(if object_id(’{0}’) is null create table {0}(, sheetName)

foreach (System.Data.DataColumn c in ds.Tables[0].Columns){strSql += string.Format([{0}] varchar(255),, c.ColumnName)}strSql = strSql.Trim(’,') + )

using (System.Data.SqlClient.SqlConnection sqlconn = new System.Data.SqlClient.SqlConnection(connectionString)){sqlconn.Open()

System.Data.SqlClient.SqlCommand mand = sqlconn.CreateCommand()

mand.CommandText = strSql

mand.ExecuteNonQuery()

sqlconn.Close()}用bcp导入数据

using (System.Data.SqlClient.SqlBulkCopy bcp = new System.Data.SqlClient.SqlBulkCopy(connectionString)){bcp.SqlRowsCopied += new System.Data.SqlClient.SqlRowsCopiedEventHandler(bcp_SqlRowsCopied)

bcp.BatchSize = 100每次传输的行数

bcp.NotifyAfter = 100进度提示的行数

bcp.DestinationTableName = sheetName目标表

this.Update()}}}上面的TransferData基本可以直接使用,如果要考虑周全的话,可以用oledb来获取excel的表结构,并且加入ColumnMappings来设置对照字段,这样效果就完全可以做到和sqlserver的dts相同的效果了。

方法是你新建一个DataTable,将数据插入到其中,然后再将其加入到DataSet中。

DataTable dt = new DataTable()

DataRow newdr

newdt.Columns.add("A",System.Type.GetType("System.String"))

newdt.Columns.add("B",System.Type.GetType("System.String"))

newdt.Columns.add("C",System.Type.GetType("System.String"))

for(int intI=0intI<A.LengthintI++)

{

newdr = newdt.NewRow()

newdr["A"] = "你查的数据"

newdr["B"] = "你查的数据"

newdr["C"] = "你查的数据"

newdt.Rows.Add(newdr)

}

DataSet ds = new DataSet()

ds.fill(dt)


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11693126.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-18
下一篇2023-05-18

发表评论

登录后才能评论

评论列表(0条)

    保存