-1

双引号不起作用,因此在直接执行 SQL 语句时,您必须输入“某个值”才能实际进行变量比较。

问题是现在当我从 ASP.NET 代码执行 SQL 语句时,我似乎没有得到任何读数......我什至没有收到错误:S....

我已经尝试自己执行 SQL 语句,它确实有效。

public static string testExi(string localIncidentNum)
        {

            try
            {
                string query = "SELECT TOP 1 UniqueColID From DBNAME WHERE LocalIncidentNum = @localIncidentNum ORDER BY [version] DESC";

                DataTable dt = new DataTable();
                SqlConnection connection = new SqlConnection(connectionStr);

                SqlCommand command = new SqlCommand(query, connection);
                command.Parameters.AddWithValue("@localIncidentNum", localIncidentNum);

                connection.Open();
                SqlDataAdapter adp = new SqlDataAdapter(command);
                adp.Fill(dt);
                connection.Close();
                command.Dispose();
                connection.Dispose();

                if (dt.Rows.Count != 0)
                {
                    string UniqueColID = dt.Rows[0]["UniqueColID"].ToString();
                    return UniqueColID;
                }
                else
                {
                    return null;
                }


                string some = dt.Rows[0]["UniqueColID"].ToString();
                return some;
            }


            catch (Exception err)
            {
                Global.tmpmsg = " Updating follow up was not successful. " + err.ToString();
                return null;
            }


        }

如果我在 SELECT 语句中硬编码事件值,它可以工作,但如果我在 .addwithvalue 中硬编码事件值,它就不起作用。

    command.Parameters.AddWithValue("@localIncidentNum", "12-023696");
4

3 回答 3

5

仔细检查你的 sql 语句:

SELECT TOP 1 UniqueColID From WHERE LocalIncidentNum = @localIncidentNum ORDER BY [version] DESC

From Where?

编辑 为了遵守您的更改,最好在描述您的问题时始终尽可能准确。省略诸如 sql 语句的表名之类的内容非常具有误导性。

于 2012-06-15T19:19:25.577 回答
0

也许将数据类型添加到您的命令参数。我相信你没有得到任何东西,因为它可能会在命令上超时。

command.Parameters.AddWithValue("@localIncidentNum", localIncidentNum);
command.Parameters[0].SqlDbType = SqlDbType.VarChar;

我在这里发现了一个类似的问题,也使用了 Varchar:

没有 DBType 的 AddWithValue 导致查询运行缓慢

于 2012-06-15T19:51:14.450 回答
-1

我解决了。问题是我(出于某种原因)需要在从 C sharp 文件执行时将表的完整路径放在 sql 代码中的表名之前:

SELECT TOP 2 [DB name].[dbo]. [table name]
于 2012-07-11T13:03:51.277 回答