c 中如何创建数据库的映射表,可能会用到不同的数据库,如oracle和mysql

c 中如何创建数据库的映射表,可能会用到不同的数据库,如oracle和mysql,第1张

mysql和sqlserver中是没序列的吧

sqlserver可以在建表的时候,设置自增长。identity(1,1)

mysql可以通过 对主键用 auto_increment来实现自增

要帮客户的会员信息导入到我们的新系统里,就帮客户做了个批量添加的功能。是用SqlBulkCopy类来实现的,非常的方便。使用这个类需要添加System.Data.SqlClient引用。总结一下使用。

1、dataset里的列名需跟数据库里的列名相同,如果不相同,可用SqlBulkCopy.ColumnMappings.Add("Name", "menberID")方法来映射列名;

2、可以不完全添加,即dataset的列可以是数据库列的子集;

3、WriteToServer(dt)的参数需要的是一个datatable。

贴下代码:

string sql = "select CardID as cardID,Name as menberID,Amount as balance from Card where ID='' or ID is NULL"

dbold.Open()

dbold.GetDA(sql)

dbold.m_da.Fill(ds, "old")

DataTable dt = ds.Tables["old"]

SqlBulkCopy sbc = new SqlBulkCopy(dbnew.m_sConnectionString, SqlBulkCopyOptions.UseInternalTransaction)

//sbc.ColumnMappings.Add("Name", "menberID")

//sbc.ColumnMappings.Add("CardID", "cardID")

//sbc.ColumnMappings.Add("Amount", "balance")

sbc.DestinationTableName = "kcard"

sbc.WriteToServer(dt)

ds.Tables["old"].Columns.Remove("balance")

sbc.DestinationTableName = "menber"

sbc.WriteToServer(dt)

// ds.Tables["old"].Columns.Remove("balance")

MessageBox.Show("导入成功!")

注:dbold是自己写的一个数据库连接类。

最好的做法是每张表对应一个实体类bean,如果一张表关联其他表,把这张表对应的实体类加上就可以了。如果使用了Hibernate,就可以使用配置文件进行映射。

A. 实体类就是属性类,通常定义在model层里面。

B. 一般的实体类对应一个数据表,其中的属性对应数据表中的字段,这样做对数据库 *** 作起来方便。

这样做的好处:

1.对对象实体的封装,体现OO思想。

2.属性可以对字段定义和状态进行判断和过滤

3.把相关信息用一个实体类封装后,我们在程序中可以把实体类作为参数传递,更加方便。

C. 说白了就是为了让程序员在对数据库 *** 作的时候不用写SQL语句

D. 就是一个数据库表生成一个类


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

原文地址: https://outofmemory.cn/sjk/9915260.html

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

发表评论

登录后才能评论

评论列表(0条)

保存