C# 在DataTable中将字符串列转换为DateTime列

C# 在DataTable中将字符串列转换为DateTime列,c#,winforms,C#,Winforms,我有一个数据表,它来自Excel,日期时间格式如下:dd/MM/yyyy-HH:MM,此字段是数据表中的字符串类型,我想将其转换为DateTime以便排序 我尝试添加DateTime类型的列并将字符串解析为DateTime,但解析失败。第一列具有日期的字符串类型,我将第9列添加为DateTime类型 这是我的代码 private void loadExcelButton_Click(object sender, EventArgs e) { try

我有一个数据表,它来自Excel,日期时间格式如下:dd/MM/yyyy-HH:MM,此字段是数据表中的字符串类型,我想将其转换为DateTime以便排序

我尝试添加DateTime类型的列并将字符串解析为DateTime,但解析失败。第一列具有日期的字符串类型,我将第9列添加为DateTime类型

这是我的代码

    private void loadExcelButton_Click(object sender, EventArgs e)
    {
        try
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();
            openFileDialog.Filter = "excel|*.xlsx";
            openFileDialog.ShowDialog();
            this.pathExcel = openFileDialog.FileName;
            DataTable aux = Excel.ExcelToDataTable(this.pathExcel);
            this.openExcelDT = AddDateColumn(aux);
            this.openExcelDT.DefaultView.Sort = "Date asc";
            OpenExcelBinding();
        }
        catch
        {
            
        }
    }

    private void OpenExcelBinding()
    {
        this.openExcelBind.DataSource = this.openExcelDT;
        this.openExcelDGV.AutoGenerateColumns = true;
        this.openExcelDGV.DataSource = this.openExcelBind;
        this.openExcelDGV.Refresh();
    }

    private DataTable AddDateColumn(DataTable dataTable)
    {
        dataTable.Columns.Add("Date", typeof(DateTime));
        foreach(DataRow row in dataTable.Rows)
        {
            string format = "\\\"dd/MM/yyyy - HH:mm\\\"";
            DateTime date;
            string s = row[0].ToString();
            if (DateTime.TryParseExact(s, format, CultureInfo.InvariantCulture,
                                      DateTimeStyles.None, out date))
            {
                row[9] = date;
            }
        }
        return dataTable;
    }
使用此代码

string format = "\\\"dd/MM/yyyy - HH:mm\\\"";
DateTime date;
string s = row[0].ToString(format);
if (DateTime.TryParseExact(s, format, CultureInfo.InvariantCulture, DateTimeStyles.None, out date))
{
    row[9] = date;
}

为什么格式变量有额外的双引号和反斜杠
string format=“dd/MM/yyyy-HH:MM”
无效?第[0]行包含字符串,第[9]行是日期时间类型的新列。是的,这是错误字符串format=“dd/MM/yyyy-HH:MM”;