inserting a string that looks like a date to a database date column
本问题已经有最佳答案,请猛点这里访问。
我让Problam插入一个看起来像日期的字符串(2015年2月23日)从DataGridView到我的本地数据库日期列。
我知道我需要将字符串"23.02.2015"转换为23/02/2015,并在将其插入数据库日期列之前将其转换为日期变量,但我不知道如何在代码内执行此操作:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | private void button3_Click(object sender, EventArgs e) { foreach (DataGridViewRow row in dataGridView1.Rows) { string constring = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\john\Documents\Visual Studio 2015\Projects\Project\Project\DB.mdf;Integrated Security=True"; using (SqlConnection con = new SqlConnection(constring)) { using (SqlCommand cmd = new SqlCommand("INSERT INTO ResultsTable VALUES(@Date, @TagNumber)", con)) { cmd.Parameters.AddWithValue("@Date", row.Cells["Exposure Date"].Value); cmd.Parameters.AddWithValue("@TagNumber", row.Cells["Device #"].Value); cmd.ExecuteNonQuery(); } } } MessageBox.Show("Records inserted."); } |
简而言之,我有一个problam可以将类似"23.05.2014"的字符串转换为类似"23/05/2014"的日期类型,以便将它插入到我的代码中的数据库的日期列中。
如果字符串日期总是以给定的格式,那么这可能对您有好处。date time.parseexact使用指定的格式和区域性特定的格式信息,将日期和时间的指定字符串表示形式转换为其日期时间等效形式。字符串表示形式的格式必须与指定的格式完全匹配。
1 2 3 4 | string smdt = row.Cells["Exposure Date"].Value; //This is the string format which is going to parse the Date string format ="dd.MM.yyyy"; DateTime dt = DateTime.ParseExact(smdt, format, CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal); |
然后
1 | cmd.Parameters.AddWithValue("@Date", dt); |
号
请尝试以下代码:
1 2 | string stringDate ="23.02.2015"; // Hold your string date here (row.Cells["Exposure Date"].Value) DateTime date = DateTime.ParseExact(stringDate,"dd.MM.yyyy", CultureInfo.InvariantCulture); |
这会将字符串日期(StringDate)转换为日期时间(Date)对象,您可以将此日期对象传递给存储过程参数。
我相信,你总是得到字符串日期的格式("dd.mm.yyyy")。否则,您将需要根据字符串格式更改它。
如果这有帮助,请告诉我。