Reputation: 25
I'm using Color Dialog in windows form to allow user to change colors. I want to store the color input in SQL database so that it is available when the user logs in again.I have also included 'BackColor' in my User table in SQL but do not know what to do next. This is my first project and I would appreciate any help. Thanks in advance! My C# code snippet-
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();
}
Upvotes: 2
Views: 7233
Reputation: 6849
Just create a int
type field in your database and store that color in integer type.
For example
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);
}
Upvotes: 3