gpt4 book ai didi

c# - 使用 mysqldataadapter 归档时设置数据表的列默认值

转载 作者:可可西里 更新时间:2023-11-01 08:06:22 25 4
gpt4 key购买 nike

这是我现在的代码:

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 归档时设置数据表的列默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15582796/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com