Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从SQL数据库存储和获取保存的颜色-使用颜色对话框_C#_Sql_Winforms_Ado.net - Fatal编程技术网

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

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

我正在使用windows窗体中的颜色对话框来允许用户更改颜色。我想将颜色输入存储在SQL数据库中,以便用户再次登录时可以使用。我还将“BackColor”包含在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();
    }

只需在数据库中创建一个
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位整数,我将它存储为。。。某些用户设置表中的整数。然后,当您获取/设置其余的用户详细信息时,也只需执行该操作。