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. 就是一个数据库表生成一个类
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)