C# 文本框在插入sql时更改日期格式

C# 文本框在插入sql时更改日期格式,c#,C#,我想在将文本框插入sql时更改日期格式。 我正在尝试这样的方法: private void Save_Click(object sender, EventArgs e) { SqlCommand cmd = new SqlCommand(" insert into memberinfo date='" + textBox1.ToString("d/M/yyyy") + "'", con); cmd.ExecuteNonQuery(); } 但我得到了一个错误:方

我想在将文本框插入sql时更改日期格式。 我正在尝试这样的方法:

private void Save_Click(object sender, EventArgs e)
{
    SqlCommand cmd = new SqlCommand(" insert into memberinfo date='"
        + textBox1.ToString("d/M/yyyy") + "'", con);
    cmd.ExecuteNonQuery();
}

但我得到了一个错误:方法“ToString”没有重载,它只接受1个参数,以便使用您不需要foramt的SQL,而只需要corecct DateTime对象

您可以将Strings转换为最新版本:

DateTime myDate = DateTime.Parse(dateString);

如果确实要将日期保存为字符串,可以使用以下命令:

Convert.ToDateTime(textBox1.Text).ToString("d/M/yyyy");
但这很危险,因为您假定输入的日期格式正确。 最好使用
DatePicker
控件并将其存储在SqlType
Date

此外,您的代码易受SQL注入攻击:


最好使用参数化查询而不是手动合成SQL字符串

c#代码或SQL Server数据库中的日期没有格式。它们只是日期(和某个时间)一组表示日期时间值的位。这是程序(或sql server management studio之类的数据库程序)显示这些日期的方式,它应用了一种供人类理解的格式。您的列date是datetime类型的列吗?我认为全球化设置有问题。示例:如果我的文本框在我的sql数据库中的格式为MM/dd/yyyy,则我的结果为dd/MM/yyyy。或者,当我按“保存”按钮将其从dd/MM/yyyy更改为MM/dd/yyyy时,是否有任何方法??不要将字符串作为日期存储在数据库列中。使用日期类型列。您计划如何在表示日期的字符串类型的列上执行搜索?他们从不工作,