C#数据库应用程序

时间:2018-07-22 08:02:11

标签: c# database winforms ado.net

这是我的代码

con.Open();
SqlCommand cmd = new SqlCommand("SELECT [Date] FROM [dbo].[DS_PROJECT] ORDER BY Date ASC", con);
cmd.ExecuteNonQuery();
SqlCommand cm = new SqlCommand("SELECT [Time] FROM [dbo].[DS_PROJECT] ORDER BY Time ASC", con);
cm.ExecuteNonQuery();
con.Close();
DateTime currenttime = DateTime.Now;
DateTime userdate = Convert.ToDateTime(cmd);
DateTime usertime = Convert.ToDateTime(cm);

我想转换保存在数据库中的日期和时间值,但无法执行,并且发生此异常

  

无法将类型为'System.Data.SqlClient.SqlCommand'的对象转换为   键入“ System.IConvertible

请帮助我。 谢谢

3 个答案:

答案 0 :(得分:1)

使用ExecuteNonQuery()用于不应该返回值或记录集的UPDATE,INSERT和DELETE查询。

您可以使用ExecuteReader()检索多个数据记录。

如果只想查询一个值,则应使用:

cmd.ExecuteScalar();

注意:请先检查null,因为如果结果集为空,它可以返回null引用。

答案 1 :(得分:0)

cm.ExecuteNonQuery()

根据

,方法是不正确的

https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executenonquery(v=vs.110).aspx

ExecuteNonQuery()返回受影响的行数。执行插入更新或删除查询时通常也使用该方法。 要从select语句获取结果,请使用MSDN的以下博客。

答案 2 :(得分:0)

通常,ExecuteNonQuery用于插入和更新语句。如果将从数据库中获取多个值,则可以使用DataSet或DataReader。 在这种情况下,如果您要使用查询进行单值检索,则可以使用ExecuteScalar方法。它将从数据库返回单个值。可能是下面的链接会有所帮助。.

http://csharp.net-informations.com/data-providers/csharp-sqlcommand-executescalar.htm