相关疑难解决方法(0)

SQL“SELECT IN (Value1, Value2...)”将值变量传递到 GridView

我在使用 . 创建 GridView 时遇到了奇怪的遭遇SELECT..WHERE..<field> IN (value1, val2...)

在“配置数据源”选项卡中,如果我对值进行硬编码SELECT .... WHERE field1 in ('AAA', 'BBB', 'CCC'),则系统运行良好。

但是,如果我定义一个新参数并使用变量传递一个串联的值字符串;无论是 @session、Control 还是查询字符串;例如,SELECT .... WHERE field1 in @SESSION结果始终为空。

我又做了一个实验,将参数内容减少到只有一个值,效果很好。

简而言之,如果我硬编码一串值,它可以工作,如果我仅传递一个具有单个值的变量,它可以工作,但如果我传递一个具有两个值的变量;它失败了。

如果我犯了任何错误或者这是一个已知的错误,请告知。

BR SDIGI

sql select gridview session-variables

5
推荐指数
1
解决办法
4万
查看次数

将列与t-sql中的值列表进行比较

我有一种情况,我在页面上显示记录,我需要一种方法让用户选择要在另一页上显示的那些记录的子集.这些记录不存储在任何地方,它是动态生成的东西.我知道我可以使用jquery将逗号分隔的值传递给我的其他网页,但我不确定在sql中最好的方法是说哪个uniqueid在这个id列表中不在表等中我我知道我可以用一堆ors动态构造sql,但这看起来像是一个黑客.还有其他人有什么建议吗?

t-sql sql-server

5
推荐指数
1
解决办法
1万
查看次数

SQL是否具有可在WHERE ... IN子句中使用的列表类型?

可能重复:
参数化SQL IN子句?
SQL Server SP - "IN"数组列表的Pass参数?

我需要在两个不同的表上搜索偶然的整数集:

SELECT 
  col_1, col_2 
FROM 
  LIKES_NUMBERS 
WHERE 
  col_1 IN (1,2,3,5,7,1021,10041411)

SELECT 
  col_one, col_two 
FROM 
  LIKES_NAMES 
WHERE 
  col_one IN (1,2,3,5,7,1021,10041411)
Run Code Online (Sandbox Code Playgroud)

是否有可以传递给IN的SQL列表类型,以便我不重复自己?例如

DECLARE @stuff UNOBTAINIUM(1,2,3,5,7,1021,10041411)
-- ...
WHERE col_1 IN (@stuff)
-- ...
WHERE col_one IN (@stuff)
Run Code Online (Sandbox Code Playgroud)

想到创建一个临时表,但这看起来很残酷.

sql t-sql

5
推荐指数
1
解决办法
6905
查看次数

将参数传递给 SQL Server 中的 IN 子句

可能的重复:
参数化 SQL IN 子句?
SQL Server - 带有声明变量的 In 子句

你好,

我在将参数传递给“IN”子句时遇到问题。我正在使用以下查询。

询问:

SELECT Topics.Topic_Id  FROM Topics 
    Where Topic_Description IN (''+ @Topics +'')    
Run Code Online (Sandbox Code Playgroud)

当参数具有单个值时,此查询有效。我的参数可以有逗号分隔的多个值,例如:“一”、“二”、“三”、“四”。但是只要有多个参数,查询就会失败。如何克服这个?请建议。

谢谢

我必须将上述内容用作存储过程的一部分。我必须将选择查询的结果放入如下游标中:

DECLARE cur_TopicIDs CURSOR FOR SELECT Topics.Topic_Id FROM Topics Where Topic_Description IN (''+ @Topics +'')....等

在这种情况下,我如何按照其他链接中的建议使用动态 sp

stored-procedures sql-server-2005 in-clause

5
推荐指数
1
解决办法
2万
查看次数

如何将带有(')的字符串插入sql数据库?

我的字符串由(')引用标记组成,如"母亲的爱"......

从c#通过sql查询插入数据时.它显示错误.如何纠正问题并成功插入此类数据?

string str2 = "Insert into tblDesEmpOthDetails (EmpID, Interviewnotes) values ('" + EmpId + "','" + Interviewnotes + "')";
Run Code Online (Sandbox Code Playgroud)

面试笔记的内容包括"母亲的爱"(单引号).执行此查询时,它将错误显示为"字符串后的未闭合引号")"如何插入此类型的字符串?

c# sql-server

5
推荐指数
3
解决办法
6万
查看次数

JAVA sql NOT IN 列表语句

我正在尝试从数据库中选择记录,其中记录 ID 不在列表中。

看看下面@我的问题。

String Sqlids = "2,6,3,9"; // this is dynamic so the number of element is unknown

String str= "SELECT TOP 1 * FROM student WHERE ID NOT IN (2,6,3,9) ORDER BY NEWID()";
PreparedStatement stat = con.prepareStatement(str);
ResultSet rs = stat.executeQuery();
Run Code Online (Sandbox Code Playgroud)

上面的语句工作正常,但如果我将其更改为

String Sqlids = "2,6,3,9";
String str= "SELECT TOP 1 * FROM student WHERE ID NOT IN (Sqlids) ORDER BY NEWID()";
PreparedStatement stat = con.prepareStatement(str);
ResultSet rs = stat.executeQuery();

//i also try this
String Sqlids = "2,6,3,9"; …
Run Code Online (Sandbox Code Playgroud)

java sql-server

5
推荐指数
2
解决办法
5024
查看次数

使用带有SQL命令对象和C#2.0的"IN"运算符

我想调用一个sql语句,例如:

Select * From Table Where Column in ('value1', 'value2', 'value3')
Run Code Online (Sandbox Code Playgroud)

是否像设置命令参数的值等于" ('value1', 'value2', 'value3')" 一样简单?

sql c#-2.0

4
推荐指数
1
解决办法
8670
查看次数

在SELECT IN中使用Oracle参数的问题

在sql查询中插入一串数字时遇到问题

  SELECT * 
    FROM tablename a 
   WHERE a.flokkurid IN (3857,3858,3863,3285) 
ORDER BY sjodategund, rodun 
Run Code Online (Sandbox Code Playgroud)

...要么:

  SELECT * 
    FROM tablename a 
   WHERE a.flokkurid IN (:strManyNumbers) 
ORDER BY sjodategund, rodun 
Run Code Online (Sandbox Code Playgroud)

...使用此代码:

using (OracleCommand sel = new OracleCommand(SQL, connectionstring)) {
  sel.Parameters.Add(":strManyNumbers", 
                      OracleDbType.Varchar2, 
                      "Client",
                      ParameterDirection.Input);
}
Run Code Online (Sandbox Code Playgroud)

所以,如果我运行此查询,我得到:

ORA-01722:无效的号码

但如果我只插入一个数字,即"3857",它将返回查询确定数据.

c# sql oracle parameters ora-01722

4
推荐指数
1
解决办法
1万
查看次数

将多个参数传递给 SQL Server

可能的重复:
参数化 SQL IN 子句?
SQL Server 2005 中的逗号分隔值插入

我正在尝试使用 where in 子句在数据库中搜索,但我的字符串采用以下格式:

'233052,57516351,254689'
Run Code Online (Sandbox Code Playgroud)

我需要使用以下查询在我的数据库中进行查询:

SELECT * FROM myTable WHERE field IN (@list_string)
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能做出这个动作?

sql t-sql sql-server sql-server-2008

3
推荐指数
1
解决办法
2万
查看次数

分组查询时无法使用ExecuteReader()检索数据

我需要检索存储在数千个项目的数据库中的信息.如果我通过这种方式逐个进行,则需要花费大量时间(tac是一个8个字符的字符串):

string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=DataBase\IMEIDB.accdb";
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
    connection.Open();
    using (OleDbCommand command = connection.CreateCommand())
    {
        OleDbDataReader reader;
        command.CommandText = "SELECT TAC, Name, Model, Year, Manufacturer, LTE FROM Terminales WHERE TAC = @tac";
        command.Parameters.AddWithValue("@tac", tac);
        reader = command.ExecuteReader();
        while (reader.Read())
        {
            ulong tac = Convert.ToUInt64(reader.GetString(0));
            if (this.DiccionarioTerminales.ContainsKey(tac))
            {
                DiccionarioTerminales[tac].inDB = true;
                DiccionarioTerminales[tac].Name = reader.GetValue(1).ToString();
                DiccionarioTerminales[tac].Manufacturer = reader.GetValue(2).ToString();
                DiccionarioTerminales[tac].Model = reader.GetValue(3).ToString();
                DiccionarioTerminales[tac].Year = reader.GetValue(4).ToString();
                DiccionarioTerminales[tac].LTE = reader.GetValue(5).ToString();
            }
        }
        command.Dispose();
    }
    connection.Dispose();
}
Run Code Online (Sandbox Code Playgroud)

它运行良好(我知道我必须使用ExecuteNonQuery()它,如果它只有一个记录,但这个例子只是一个测试),但如果我尝试将tac 10分组10(现在tac是一个字符串 …

c# sql oledb wpf

3
推荐指数
1
解决办法
109
查看次数