c#-设置数据表的列默认值,当与mysqldataadapter一起归档时
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c#-设置数据表的列默认值,当与mysqldataadapter一起归档时,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1806字,纯文字阅读大概需要3分钟。
内容图文
![c#-设置数据表的列默认值,当与mysqldataadapter一起归档时](/upload/InfoBanner/zyjiaocheng/885/a8906b9eb9124dbd8405be9a107f2003.jpg)
这是我现在的代码:
private static MySqlConnection conn = null;
private static MySqlDataAdapter AccountsDa = null;
private static MySqlCommandBuilder AccountsCb = null;
AccountsDa = new MySqlDataAdapter("SELECT * FROM accounts", conn);
AccountsCb = new MySqlCommandBuilder(AccountsDa);
Accounts = new DataTable();
AccountsDa.Fill(Accounts);
我试图弄清楚如何定义列默认值,而无需手动进行
如果我这样做:
DataColumn col = new DataColumn();
col.ColumnName = "id";
col.AllowDBNull = false;
col.DataType = System.Type.GetType("System.Int32");
col.DefaultValue = 0;
Accounts.Columns.Add(col);
对于每个列,它都可以正常工作,但是当表被填充后,如何从数据库中自动设置默认值.我希望不必手动定义30列.
我尝试了Accountsda.FillSchema(Accounts,SchemaType.Source);
设置允许空值和自动递增,但不设置默认值
问题是稍后在向数据表中添加行时出现问题,有时我只需要为一列设置值,然后让其余的列恢复其默认值即可.
我可以放置180行代码来手动定义用于插入行的默认值,但是在创建/填充数据表时必须有一种从数据库中获取默认值的方法
我在内存数据表中使用数据,是因为有时数据仅存在2分钟,然后又被删除,因为这是在线rts游戏的专用服务器.为了将命中保存在数据库中,我使用数据表并对其进行处理,并每10分钟刷新一次,这样我每10分钟只有1,000次命中数据库,而不是40,000次命中
解决方法:
根据msdn专家的说法,在他们的论坛上最终获得答复后,它不可能获得默认值.您所能做的就是加载并且允许其值为null并对其自动递增,但是您必须设置种子并踩到自动递增,它也无法从数据库中获取该值,但是他们给出了一个简化的版本减少到30行代码,而不是180行
调用fillschema然后填充数据表后,可以像这样将其削减为一行而不是六行
Cities.Columns["wood"].DefaultValue = 0;
经过几次答复,甚至还有一种更简便的方法来执行此操作,而这并不是我想要的方式,但也许它将帮助其他人走同一条路,而不是为每一列写一行,这会在3行中全部完成
foreach (DataColumn col in Cities.Columns) {
if (col.ColumnName != "id") col.DefaultValue = 0;
}
id是主键,无法设置默认值
内容总结
以上是互联网集市为您收集整理的c#-设置数据表的列默认值,当与mysqldataadapter一起归档时全部内容,希望文章能够帮你解决c#-设置数据表的列默认值,当与mysqldataadapter一起归档时所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。