首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SqlCommand参数问题

SqlCommand参数问题
EN

Stack Overflow用户
提问于 2012-01-18 20:16:12
回答 4查看 253关注 0票数 0

当我在SSMS中执行以下查询时,我得到了预期的结果,即'1‘。

代码语言:javascript
复制
SELECT TSID
FROM tblTimesheets
WHERE TSUser = 'PJW' AND TSDate = '2012-01-18';

但是,当我的应用程序中的代码生成SqlCommand时,ExecuteScalar将失败(它只是导致方法退出,没有错误消息)。

代码语言:javascript
复制
public int GetID(string paramUser, DateTime paramDate)
    {
        string strSql = "SELECT TSID " +
                        "FROM tblTimesheets " +
                        "WHERE TSUser = @TSUser AND TSDate = @TSDate;";

        string strConnection = BuildConnectionString();
        SqlConnection linkToDB = new SqlConnection(strConnection);
        linkToDB.Open();

        SqlCommand sqlCom = new SqlCommand(strSql, linkToDB);
        sqlCom.Parameters.Add("@TSUser", SqlDbType.Text);
        sqlCom.Parameters.Add("@TSDate", SqlDbType.Date);
        sqlCom.Parameters["@TSUser"].Value = paramUser;
        sqlCom.Parameters["@TSDate"].Value = paramDate;


        int intResult = (Int32)sqlCom.ExecuteScalar();
        linkToDB.Close();
        return intResult;
    }

我已经遍历了代码,可以根据需要确认参数是PJW和2012-01-18,但是ExecuteScalar返回任何数据,根据我在SSMS中的可比查询,我知道这些数据应该在那里。

请协助。

EN

回答 4

Stack Overflow用户

发布于 2012-01-18 20:21:39

根据列的类型,尝试执行以下任一操作,而不是SqlDbType.Text

  • SqlDbType.VarChar
  • SqlDbType.NVarChar
  • SqlDbType.NText
  • SqlDbType.NChar
  • SqlDbType.Char
票数 1
EN

Stack Overflow用户

发布于 2012-01-18 20:29:20

代码语言:javascript
复制
SELECT TSID
FROM tblTimesheets
WHERE TSUser = 'PJW' AND TSDate = '2012-01-18';

在这里,您正在将确切的日期作为参数传递

当将参数传递给存储过程时,您传递的是"DateTime paramDate“

日期和时间变量

您可能需要解析为存储过程支持的确切日期格式,即,您需要将paramDate变量格式化为'YYYY-mm-DD‘

我不确定..。试试看..如果有帮助或没有帮助,请回复!

票数 1
EN

Stack Overflow用户

发布于 2012-01-18 20:29:42

当参数是DB类型date时,最好在设置参数时剥离时间部分,如下所示:

代码语言:javascript
复制
sqlCom.Parameters.Add("@TSDate", SqlDbType.Date);
sqlCom.Parameters["@TSDate"].Value = paramDate.Date;

如果这不起作用,请告诉我,我将删除我的答案。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8909954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档