从SQL数据库存储和获取保存的颜色 - 使用颜色对话框

时间:2014-05-23 03:38:05

标签: c# sql winforms ado.net

我在Windows窗体中使用Color Dialog允许用户更改颜色。我想将颜色输入存储在SQL数据库中,以便在用户再次登录时可用。我还包括了“BackColor”#39;在SQL的用户表中,但不知道下一步该做什么。这是我的第一个项目,我将不胜感激任何帮助。提前致谢! 我的C#代码段 -

 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();
    }

1 个答案:

答案 0 :(得分:3)

只需在数据库中创建一个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);
}