C# 从SQL数据库存储和获取保存的颜色-使用颜色对话框
我正在使用windows窗体中的颜色对话框来允许用户更改颜色。我想将颜色输入存储在SQL数据库中,以便用户再次登录时可以使用。我还将“BackColor”包含在SQL的用户表中,但不知道下一步要做什么。这是我的第一个项目,我将感谢任何帮助。提前谢谢! 我的C#代码片段-C# 从SQL数据库存储和获取保存的颜色-使用颜色对话框,c#,sql,winforms,ado.net,C#,Sql,Winforms,Ado.net,我正在使用windows窗体中的颜色对话框来允许用户更改颜色。我想将颜色输入存储在SQL数据库中,以便用户再次登录时可以使用。我还将“BackColor”包含在SQL的用户表中,但不知道下一步要做什么。这是我的第一个项目,我将感谢任何帮助。提前谢谢! 我的C#代码片段- private void ChangeBackColor() { ColorDialog myDialog = new ColorDialog(); myDialog.ShowDialo
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();
}
只需在数据库中创建一个
int
type字段,并将该颜色存储为整数类型
比如说
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);
}
首先,使用ARGB值。这是一个微不足道的32位整数值,而不是一个庞大的字符串。下一个我们在谈论什么样的数据库?自定义基于文件、关系、列存储?该类型将指定API。它是基于列的…如果它是基于列的,并且ARGB是一个32位整数,我将它存储为。。。某些用户设置表中的整数。然后,当您获取/设置其余的用户详细信息时,也只需执行该操作。