环境:
VS2013
.Net 4.5
SQL Server 2012
语言:c#
各位大神好,最近在做数据库课设,遇到一个问题,将图书的入库日期插入到数据库中。
数据库的Book表中的InDate列是date型的
现在想用C#将由TextBox输入的日期“2015-7-7”插入到数据库,一直失败。
下面是我目前的代码:
//获取输入
string lsBID = tb_BID.Text.Trim();
string lsName = tb_Name.Text.Trim();
string lsAuthor = tb_Author.Text.Trim();
string lsPublisher = tb_Publisher.Text.Trim();
string lsIntroduction = tb_Introduction.Text; //书籍简介不去空格
//DateTime ldInDate = DateTime.Parse(tb_InDate.Text);
DateTime ldInDate = new DateTime(1995,3,1);
MessageBox.Show(ldInDate.ToString()); //for test
//插入数据库
try
{
myCon.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = myCon;
cmd.CommandText = "insert into Book(BID,Name,Author,Publisher,Introduction,InDate) values ('" + lsBID + "','" + lsName + "','" + lsAuthor + "','" + ldInDate + "')";
MessageBox.Show(cmd.CommandText); //for test
int num1 = cmd.ExecuteNonQuery();
if (num1 > 0)
{
MessageBox.Show("入库成功!", "提示");
TextClear(); //清空输入
}
else
{
MessageBox.Show("系统故障,入库失败!", "提示");
}
}
catch
{
MessageBox.Show("插入失败,请检测输入是否合法!", "提示");
}
finally
{
if (myCon != null) myCon.Close();
}
然后试过将数据库表的InDate改为datetime型,还是不行。
求大神帮忙,感激不尽!
------解决思路----------------------
DateTime 类型直接 ToString 会根据系统配置转换, 那是专给人看的,要用来组成SQL用带格式的 ToString, 楼上的说了.
另外,插入字段是6个,但给的值只有4个,这也是问题吧.
------解决思路----------------------
好像很有道理。。。这个太蛋疼了,简直就是C++把main写成mian,不跑一遍谁能发现啊