当前位置: 代码迷 >> C# >> C# 向SQL Server中插入日期型数据,该怎么处理
  详细解决方案

C# 向SQL Server中插入日期型数据,该怎么处理

热度:29   发布时间:2016-05-05 03:15:03.0
C# 向SQL Server中插入日期型数据
环境:
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个,这也是问题吧.
------解决思路----------------------
引用:
Quote: 引用:

DateTime 类型直接 ToString 会根据系统配置转换, 那是专给人看的,要用来组成SQL用带格式的 ToString, 楼上的说了.
另外,插入字段是6个,但给的值只有4个,这也是问题吧.

眼神儿不错


好像很有道理。。。这个太蛋疼了,简直就是C++把main写成mian,不跑一遍谁能发现啊
  相关解决方案