C# 使用数据库、C windows窗体应用程序存储和检索颜色

C# 使用数据库、C windows窗体应用程序存储和检索颜色,c#,database,winforms,colors,color-picker,C#,Database,Winforms,Colors,Color Picker,我正在用C制作一个windows应用程序。我正在使用“颜色”对话框供用户选择颜色。我希望将该颜色存储在数据库中,以后能够检索该颜色,并能够在用户界面中使用该颜色 您建议我采用什么方法?最好的方法是将十六进制颜色存储在数据库字段nvarchar7中。。。例如,输入为ffffff。varchar6也可以工作,并且在数据库中占用更少的空间。只需确保在代码中附加 由于需要将其转换为控件颜色/从控件颜色转换为控件颜色,因此可以使用System.Drawing.ColorTranslator.FromHtm

我正在用C制作一个windows应用程序。我正在使用“颜色”对话框供用户选择颜色。我希望将该颜色存储在数据库中,以后能够检索该颜色,并能够在用户界面中使用该颜色


您建议我采用什么方法?

最好的方法是将十六进制颜色存储在数据库字段nvarchar7中。。。例如,输入为ffffff。varchar6也可以工作,并且在数据库中占用更少的空间。只需确保在代码中附加

由于需要将其转换为控件颜色/从控件颜色转换为控件颜色,因此可以使用System.Drawing.ColorTranslator.FromHtmlsomeHexColor


我使用函数System.Drawing.Color.FromArgb和System.Drawing.Color.ToArgb将颜色从和转换为整数,并将其保存为数据库中的int

ColorDialog col = new ColorDialog();

col.ShowDialog();

string color = col.Color.ToArgb().ToString("x");

color = color.Substring(2, 6);

color = "#" + color;

MessageBox.Show(color);

button1.BackColor = System.Drawing.ColorTranslator.FromHtml(color);

您已经有了用于此应用程序的数据库吗?+1-虽然我相信varchar就足够了,因为您不担心RGB值的unicode。@CAbbot,这是真的。。。习惯的力量,因为我为本地化设置了一切。。。我的不好。但是如何检索这些值并将其设置为控制颜色?问题是如何将颜色转换为FFFFFF格式并轻松返回。Color没有像FromArgb那样接受十六进制字符串的静态方法。@Nick。是的,我喜欢这个解决方案只是因为它的可读性。另一个答案也很好,但我个人不喜欢看到一个以大INT作为颜色的DB表:这也是一个好方法,不过,我想我更喜欢能够看到DB并理解其内容。
ColorDialog col = new ColorDialog();

col.ShowDialog();

string color = col.Color.ToArgb().ToString("x");

color = color.Substring(2, 6);

color = "#" + color;

MessageBox.Show(color);

button1.BackColor = System.Drawing.ColorTranslator.FromHtml(color);