【发布时间】:2015-10-05 03:20:31
【问题描述】:
我想从monthCalender1 中获取选定的日期并从 SQL Server 表中检索我的数据。但我收到异常消息
无法转换为日期时间格式
SQL Server 表日期格式为“dd/mm/yyyy”
private void monthCalendar1_DateChanged(object sender, DateRangeEventArgs e)
{
rtbDocument.Clear();
SqlConnection cn = null;
SqlCommand cmd = null;
SqlDataReader reader = null;
string date = monthCalendar1.SelectionRange.ToString();
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-CA");
DateTime dt = DateTime.Parse(date); //uses the current Thread's culture
CultureInfo provider = CultureInfo.InvariantCulture;
textBox1.Text = date;
try
{
cn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\User\Desktop\myproject_c#\diary\photogallery\RicherTextBox_src\RicherTextBox\diary.mdf;Integrated Security=True;User Instance=True;");
cn.Open();
cmd = new SqlCommand("SELECT rtf_file_content FROM rtf WHERE rtf_date=@dt AND user_rtf_id=1", cn);
cmd.Parameters.AddWithValue("@dt", dt);
reader = cmd.ExecuteReader();
reader.Read();
if (reader.HasRows)
{
if (!reader.IsDBNull(0))
{
Byte[] rtf = new Byte[Convert.ToInt32((reader.GetBytes(0, 0,
null, 0, Int32.MaxValue)))];
long bytesReceived = reader.GetBytes(0, 0, rtf, 0, rtf.Length);
ASCIIEncoding encoding = new ASCIIEncoding();
rtbDocument.Rtf = encoding.GetString(rtf, 0, Convert.ToInt32(bytesReceived));
}
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
if (null != reader) reader.Close();
if (null != cn) cn.Close();
}
}
【问题讨论】:
标签: c# sql-server