关于类型强制转换的问题
各位大侠你们好:我现在遇到一个问题如下描述:我把一个表中的 短信内容 发送时间(datetime)这两列在一个 dataGridView 控件中显示,我想以 发送时间 为条件来 单条删除 dataGridView 中的短信内容 。现自定义了一个id string id = dataGridView1.CurrentRow.Cells[0].Value.ToString(); 再将id强制性转换为 日期型 DateTime id1 = Convert.ToDateTime(id);
然后再在语句中写上 SqlCommand cmd = new SqlCommand("delete from SM_MSG where MSG_BEGTIME= '" + id1 + "'", connectionS); 运行的时候会出现 “该字符串未被识别为有效的 DateTime。有一个未知单词(从索引 0 处开始)。”这样的问题,不知该怎么解决,请大侠帮忙。
--------------------编程问答-------------------- id1为DateTime 类型。不能和string类型相加的 --------------------编程问答-------------------- string id1 = Convert.ToDateTime(id).toString();
试试 --------------------编程问答-------------------- 不行滴 呵呵 还是 出现一样的错误提示 --------------------编程问答-------------------- 呜呜 大家帮帮忙啊 谢谢了 --------------------编程问答-------------------- 定义id的时候直接转换呢?
DateTime id1 = Convert.ToDateTime(dataGridView1.CurrentRow.Cells[0].Value.ToString());
查询的时候 "delete from SM_MSG where MSG_BEGTIME= '" + id1.toString() + "'" ; --------------------编程问答-------------------- 不是什么东西都能转化为时间格式的 如果必须这样实现那就直接以时间(yyyy-MM-dd HH:mm:ss xx.xxx)删除就是了 xx.xxx最好是带上 以减少时间重复引起的不必要的删除
最好的做法 是弄个ID唯一的 根据ID删除 这样做1,准确 2,效率高 --------------------编程问答-------------------- 话说 看错了、 原来是定义的两个变量 --------------------编程问答-------------------- 你取出id的值看看,看看id的值是多少!因为这样的原因很可能是在把string类型转换成id类型的时候出现的错误。 --------------------编程问答--------------------
貌似没看错 看看可以不、
--------------------编程问答-------------------- delete from SM_MSG where convert(varchar(50),MSG_BEGTIME)='"+id+"' --------------------编程问答-------------------- 直接把这句【delete from SM_MSG where MSG_BEGTIME= '" + id1 + "'"】放在sql中执行。
出什么错误?
id1写上正确的时间。如【2011-02-23】.
如果再出错。【=】后加个N。
如果出错,sql写错了。和c#无关。
如果没出错。看看id1.toString()是否是正确的时间格式。
另外【"delete from SM_MSG where MSG_BEGTIME= '" + id1 + "'"】和【DateTime id1 = Convert.ToDateTime(id)】我觉得肯定会出错。在c#中应该会提示类型相加不了啊。
补充:.NET技术 , C#