我的页面上有几个html表格,我希望能够根据其中一个单元格值的值对它们进行排序.这是我的表的一个例子
<div id="tables">
<table class="sortable">
<tr>
<td>Comic Book Name</td>
<td id="comic">Batman</td>
</tr>
<tr>
<td>Main Character</td >
<td ="character">Bruce Wayne</td>
</tr>
<tr>
<td>Hero Name</td>
<td id="hero">Batman</td>
</tr>
<tr>
<td>Published</td>
<td id="publish">05/01/1940</td>
</tr>
</table>
<table class="sortable">
<tr>
<td>Comic Book Name</td>
<td id="comic">Green Arrow</td>
</tr>
<tr>
<td>Main Character</td >
<td ="character">Oliver Queen</td>
</tr>
<tr>
<td>Hero Name</td>
<td id="hero">Green Arrow</td>
</tr>
<tr>
<td>Published</td>
<td id="publish">11/01/1941</td>
</tr>
</table>
</div>
Run Code Online (Sandbox Code Playgroud)
我提供以下下拉菜单以允许用户进行过滤.
<select id="OrderBy">
<option selected="selected" value="comic">Comic Name</option>
<option value="character">Character Name</option>
<option value="hero">Hero Name</option>
<option value="publish">Earliest Publish …
Run Code Online (Sandbox Code Playgroud) 我正在尝试保护一些用我猜是 VB 或 asp 编写的遗留代码(不确定是否有区别)。当我尝试执行该语句时,页面出现内部服务器错误。我确信这是连接的结果,但我不太了解语言,不知道如何对其进行故障排除。
我对语言和 ADODB 库的了解来自 W3Schools文档和这篇文章。
这是我写的代码(识别信息已编辑)
SET Conn=server.CreateObject("adodb.connection")
Conn.Open "Provider=sqloledb;SERVER=I;DATABASE=Hate;UID=My;PWD=Life;"
SET countCmd = createobject("adodb.command")
countCmd.ActiveConnection = Conn
countCmd.commandText = "SELECT COUNT(*) FROM [table1] WHERE FY=@fy"
countCmd.Parameters.Append countCmd.createparameter("@fy", 200, 1, 255, fy)
SET pcount = countCmd.Execute() 'This is where the error happens
Run Code Online (Sandbox Code Playgroud)
我的最终目标不仅是从这个表中得到一个计数,而是要足够好地理解 adodb 库,以便我可以继续参数化这个遗留代码库中需要它的所有查询。
我感谢任何帮助,并希望得到详细的解释。
我希望我能接受这两个答案作为公认的答案,因为我认为它们是完美的答案。我最终使用了两者,所以请给这些人点赞。
我想根据“First”和“Last”两个字段按字母顺序对条目进行排序。
这两个字段的域都是CHAR(30)
. 这两个字段都不是任何类型的键。
例如,我使用下表。
Last First
Banner Bruce
Wayne Bruce
Wayne Benjamin
Kent Clark
Rodgers Steve
Jordan Hal
Stark Tony
Howlett Logan
Run Code Online (Sandbox Code Playgroud)
然后,我使用以下 SQL 语句,根据此处(查看最后一个示例),它是一个有效的 SQL 语句,应按姓氏排序,然后按名字的子排序。
SELECT * FROM Heros ORDER BY Last ASC, First ASC;
Run Code Online (Sandbox Code Playgroud)
我正在寻找的结果是:
Last First
Banner Bruce
Howlett Logan
Jordan Hal
Kent Clark
Rodgers Steve
Stark Tony
Wayne Benjamin
Wayne Bruce
Run Code Online (Sandbox Code Playgroud)
相反,我得到:
Last First
Banner Bruce
Howlett Logan
Jordan Hal
Kent Clark
Rodgers Steve
Stark Tony
Wayne Bruce
Wayne Benjamin
Run Code Online (Sandbox Code Playgroud)
基本上,最后两行在按姓氏排序后不再按名字排序。我不确定返回的行未按我的预期排序的原因是什么。除了 …
我的原始查询使用@WF_ID作为参数名称,并且可以毫无问题地执行.我很懒,WF_要输入很多,所以我将参数重命名为@ID,但现在执行时抛出了SQLException.确切的消息是"无效的列名'_Page'"
以下是查询的两个版本和相应的代码.正如您所看到的,唯一改变的是参数名称.
SQL_Connection.Open();
SQL_Command.Connection = SQL_Connection;
SqlParameter param = new SqlParameter("@WF_ID", SqlDbType.Int);
param.Value = WF_ID;
SQL_Command.Parameters.Add(param);
SQL_Command.CommandText = "SELECT COUNT(*) AS MyCount from members WHERE ID = @WF_ID";
int numRows = Convert.ToInt32(SQL_Command.ExecuteScalar().ToString());
SQL_Command.Parameters.Clear();
Run Code Online (Sandbox Code Playgroud)
版本2.0破碎版
SQL_Connection.Open();
SQL_Command.Connection = SQL_Connection;
SqlParameter param = new SqlParameter("@ID", SqlDbType.Int);
param.Value = WF_ID;
SQL_Command.Parameters.Add(param);
SQL_Command.CommandText = "SELECT COUNT(*) AS MyCount from members WHERE ID = @ID";
int numRows = Convert.ToInt32(SQL_Command.ExecuteScalar().ToString());
SQL_Command.Parameters.Clear();
Run Code Online (Sandbox Code Playgroud)
我的初步想法是参数名称不能与其中一个列名相同...但我找不到任何明确说明的内容.
看看这个StackOverflow主题,你似乎无法通过参数传递列名.我可以在SQL存储过程中将列名作为输入参数传递
我使用以下代码尝试从我的代码文件中查找包含在另一个目录中的文件.
Set fi=fs.OpenTextFile(Server.MapPath("~/counter/counter.txt"), 1)
Run Code Online (Sandbox Code Playgroud)
我也试过了.
Set fi=fs.OpenTextFile(Server.MapPath("./root/folder1/counter/counter.txt"), 1)
Run Code Online (Sandbox Code Playgroud)
在任何一种情况下,这应该让我回到counter.txt文件.从我的理解〜/向上移动1个目录和./移动到根目录.
但是两次都收到错误,说明使用了无效字符.删除这些时,我得到一个不同的错误,说找不到路径(我希望这是因为它不是一个有效的路径而没有移动1个目录).
在VBscript中执行以下操作的有效字符是什么:向上移动一个目录?移动到根目录?
谢谢您的帮助
我试图从字典文件中读取单词,我在第4行读取文件中的段错误.从我所读到的关于c ++中的向量来使用insert命令我需要指定一个迭代器来用作占位符.要做到这一点,我在我的向量的开头实例化一个迭代器.
vector<string>::iterator it = dictionaryFile.begin();
Run Code Online (Sandbox Code Playgroud)
在我的for循环中,我使用increment运算符增加迭代器指向的位置
it++;
Run Code Online (Sandbox Code Playgroud)
我基于www.cplusplus.com上的示例.迭代器适用于前3行,然后发生段错误.我仔细检查了我的文件,以确保没有错误的字符被getline读入.我相信这个错误与我做的保留调用有关,以确保矢量没有溢出.
由于我在声明时没有使用关键字new,因此向量限制为5的容量?我找不到任何使用新关键字的例子!
我已经包含导致此错误的代码段.请注意我已经多次重新设计了这个以试图解决这个段错误,这不是我原来的实现.我很感激c ++大师可能有的任何见解.感谢您的时间.
vector<string> dictionaryFile (5, ""); //Declaration of vector that will hold the words in the dictionary
ifstream input; //Declaration of input file stream
input.open(inst.c_str());
/********************** Test to see if file was opened ********************************/
if(!input){
cerr << "The file " << inst <<" does not exists in this directory" << '\n';
}
/********************** File is successfully opened**********************************/
string temporaryProcessingString = ""; //This string will temporarily hold values read …
Run Code Online (Sandbox Code Playgroud) 根据我的理解,下面的代码应该创建一个参数化语句并为该参数添加一个值.参数为"@exp",并且添加到其中的值由用户输入确定.我存储了用户输入String exp;
(不是我的选择别人写了这个函数的大部分).
SQl_Command.CommandText = "SELECT COUNT(*) As MyCount FROM members WHERE ([Primary Exp] = '@exp') AND ([Approved] = 'True') OR ([Approved] = 'True') AND ([Secondary Exp] = '@exp')";
SQl_Command.Parameters.Add("@exp", SqlDbType.NVarChar, 255);
SQl_Command.Parameters["@exp"].Value = exp;
Run Code Online (Sandbox Code Playgroud)
我的测试用例的期望结果是16但是此查询返回0.查询在从SQL Server 2008运行时起作用,如下所示.
SELECT COUNT(*) As MyCount
FROM members
WHERE ([Primary Exp] = 'Risk Management')
AND ([Approved] = 'True') OR ([Approved] = 'True')
AND ([Secondary Exp] = 'Risk Management')
Run Code Online (Sandbox Code Playgroud)
我应该可以使用Response.Write(SQl_Command.CommandText);
我选择"风险管理"的地方,并打印出参数化查询:
SELECT COUNT(*) As MyCount
FROM members
WHERE ([Primary Exp] = 'Risk Management') …
Run Code Online (Sandbox Code Playgroud) asp-classic ×2
c# ×2
sql ×2
vbscript ×2
adodb ×1
c++ ×1
html ×1
javascript ×1
jquery ×1
mysql ×1
sorting ×1
sql-order-by ×1
stdvector ×1
vector ×1