【问题标题】:Storing and Getting back saved Color from SQL database- Using Color Dialogbox从 SQL 数据库存储和取回保存的颜色 - 使用颜色对话框
【发布时间】:2014-05-23 03:38:04
【问题描述】:

我在 windows 窗体中使用颜色对话框来允许用户更改颜色。我想将颜色输入存储在 SQL 数据库中,以便在用户再次登录时可用。我还在 SQL 的用户表中包含“BackColor”,但不知道下一步该做什么。这是我的第一个项目,我将不胜感激。提前致谢! 我的 C# 代码 sn-p-

 private void ChangeBackColor()
    {
        ColorDialog myDialog = new ColorDialog();
        myDialog.ShowDialog();
        string color = myDialog.Color.ToArgb().ToString("x");
        color = color.Substring(2, 6);
        color = "#" + color;
        lblBackColor.Text = color;
        Color color2 = System.Drawing.ColorTranslator.FromHtml(color);
        this.BackColor = color2;
    }

    private void btnChangeBackColor_Click(object sender, EventArgs e)
    {
        ChangeBackColor();
    }

【问题讨论】:

  • 首先,使用 ARGB 值。这是一个微不足道的 32 位整数值,而不是一个庞大的字符串。下一步...我们在这里谈论什么样的数据库?基于自定义文件、关系、列存储?类型将决定 API。
  • 它是基于列的...
  • 如果它是基于列的,并且 ARGB 是一个 32 位整数,我会将其存储为......在某些用户设置表中的整数。然后,当您获取/设置其余的用户详细信息时,也可以这样做。

标签: c# sql winforms ado.net


【解决方案1】:

只需在您的数据库中创建一个int 类型字段并将该颜色存储为整数类型。

例如

int iColor = Color.Blue.ToArgb();
//Store this integer value to database

//Then retrieve that int value from database and convert it to color type 
//by using FromArgb() method.
Color myColor = Color.FromArgb(iColor);

///To store value in database
Try
{
    SqlCommand Cmd = Connection.CreateCommand();
    Cmd.CommandText = "Update TableName Set backColor=@backColor Where Code=@Code";
    Cmd.Parameters.Add("@backColor", SqlDBType.Int).Value = this.BackColor.ToArgb();
    Cmd.Parameters.Add("@Code", SqlDBType.Int).Value = UserCode;
    Cmd.ExecuteNonQuery();
}
catch(Exception ex)
{
    Messagebox.Show(ex.Message);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多