Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 参数没有值_C#_Ms Access_Datetime_Select_Parameters - Fatal编程技术网

C# 参数没有值

C# 参数没有值,c#,ms-access,datetime,select,parameters,C#,Ms Access,Datetime,Select,Parameters,为什么参数数据得不到日期值?(至少一个复杂参数的值尚未确定)来自 OLE DB.NET提供程序不支持将参数传递给SQL的命名参数 当CommandType设置为Text时,OleDbCommand调用的语句或存储过程。 在这种情况下,必须使用问号(?)占位符 基本上,试着使用位置法。来自 OLE DB.NET提供程序不支持将参数传递给SQL的命名参数 当CommandType设置为Text时,OleDbCommand调用的语句或存储过程。 在这种情况下,必须使用问号(?)占位符 尝试使用位置方法

为什么参数数据得不到日期值?(至少一个复杂参数的值尚未确定)

来自

OLE DB.NET提供程序不支持将参数传递给SQL的命名参数 当CommandType设置为Text时,OleDbCommand调用的语句或存储过程。 在这种情况下,必须使用问号(?)占位符

基本上,试着使用位置法。

来自

OLE DB.NET提供程序不支持将参数传递给SQL的命名参数 当CommandType设置为Text时,OleDbCommand调用的语句或存储过程。 在这种情况下,必须使用问号(?)占位符


尝试使用位置方法,基本上。

如果这是直接从代码中剪切出来的,那么它可能会给出一个错误,因为它在WHERE子句之前的查询字符串中需要一个空格。

如果这是直接从代码中剪切出来的,那么它可能会给出一个错误,因为它在WHERE子句之前的查询字符串中需要一个空格。

你的意思是:WHERE=#“DateTime.Now()+”#“@西蒙:不,我的意思是使用“?”占位符,如引用的段落所述。阅读链接文档以获得更完整的示例。好的。。。但我不能让它工作。在我的例子中如何使用它(给参数一个日期值,并将其与数据库中的日期进行比较?@Simon:只需将SQL语句更改为有“?”我不知道你是否也需要从Add调用中删除这个名称…如果那样容易的话…我在问之前就这么做了。我仍然会收到相同的错误(至少有一个参数(smt.like)没有值),你的意思是:Where datum=#“DateTime.Now()+”#“;@Simon:不,我是说使用?“占位符,如引用的段落中所述。阅读链接文档以获得更完整的示例。好吧……但我无法使其工作。在我的情况下如何使用它(将参数指定为日期值,并将其与数据库中的日期进行比较?@Simon:只需将SQL语句更改为有“?”?“而不是@datum,我希望它能起作用。我不知道你是否也需要从Add调用中删除名称……如果这么简单的话……我在询问之前就这么做了。我仍然会收到相同的错误(至少一个参数没有给出值(类似于smt))
string queryString = "SELECT SUM(skupaj_kalorij)as Skupaj_Kalorij  "
                    + "FROM (obroki_save LEFT JOIN users ON obroki_save.ID_uporabnika=users.ID)"
                    + "WHERE users.ID= " + a.ToString() + " AND obroki_save.datum =?";


using (OleDbCommand cmd = new OleDbCommand(queryString,database))                                    
{
    cmd.Parameters.Add("@datum", OleDbType.Char).Value = DateTime.Now.ToShortDateString();    
}