使用MySQL 5.1.49,我正在尝试实现一个标记系统我遇到的问题是带有两列的表:id(autoincrement),tag(unique varchar) (InnoDB)
使用查询时,即使忽略插入INSERT IGNORE INTO tablename SET tag="whatever",自动增量id值也会增加.
通常这不会是一个问题,但我希望很多可能的尝试为这个特定的表插入重复项,这意味着我id的新行的字段的下一个值将跳得太多.
例如,我最终会得到一张表3行但不好id的表
1 | test
8 | testtext
678 | testtextt
Run Code Online (Sandbox Code Playgroud)
此外,如果我不这样做INSERT IGNORE并且只是定期INSERT INTO处理错误,则自动增量字段仍会增加,因此下一个真正的插入仍然是错误的自动增量.
如果有INSERT重复的行尝试,有没有办法停止自动增量?
正如我对MySQL 4.1的理解,这个值不会增加,但我想做的最后一件事是要么SELECT提前做很多语句来检查标签是否存在,或者更糟糕的是,降级我的MySQL版本.
好吧,我有生产环境的问题以及jquery ajax如何捕获错误.
在我的本地机器上的开发环境中,当jquery ajax调用webservice [webmethod]并且webmethod抛出一个特定的错误时,jquery ajax正确捕获它,但在生产环境中jquery ajax捕获错误但消息是通用的"有处理请求时出错." "内部服务器错误"
例如
c#代码
[WebMethod]
public String dostuff(String Auth){
// some code here
// if error occurs
throw new Exception("Some specific error message");
return "ok";
}
Run Code Online (Sandbox Code Playgroud)
jquery ajax调用
var data = JSON.stringify({ Auth: "some data here" }, null);
$.ajax({
type: "POST",
url: '/Services/memberService.asmx/dostuff',
data: data,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (result) {
alert(result.d); // alert ok
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("responseText=" + XMLHttpRequest.responseText + "\n textStatus=" + textStatus + …Run Code Online (Sandbox Code Playgroud) 好.我面临的问题是我有自己的自定义控件,我做一个查询,获取记录,并根据数据动态添加HTML控件到页面.
现在有添加一些动态JavaScript的问题
我是在文字控件的帮助下完成的.
<asp:Literal runat="server" ID="latEventToolTipJqueryScripts"></asp:Literal>
Run Code Online (Sandbox Code Playgroud)
这就像一个魅力
<script language="javascript" type="text/javascript">
// <![CDATA[
Sys.Application.add_load(WireEvents_<%=this.ID%>); // fix wiring for .NET ajax updatepanel
$(WireEvents_<%=this.ID%>); // handle page load wiring
function WireEvents_<%=this.ID%>() {
<asp:Literal runat="server" ID="latEventToolTipJqueryScripts"></asp:Literal>
}
// ]]>
</script>
Run Code Online (Sandbox Code Playgroud)
我从代码后面动态添加文字文本.
但是,将控件放在updatepanel中时,回发不会更新脚本.
编辑:Sys.Application.add_load使用updatepanel重新编写必要的功能.问题是需要代替文字的脚本在更新面板中时不会更新.
我已经尝试过ClientScript.RegisterStartupScript,但它与文字控制技巧具有相同的效果.有帮助吗?
---------------------------已解决(tnx到Pranay Rana)---------------- ------------------
摆脱了ascx方面的文字.以及Sys.Application.add_load
现在它只在后面的代码中.让我失望的是JQuery的事情.
this.strBuilderJS.Append( "<script language='javascript' type='text/javascript'>" +
"$(WireEvents_" + this.ID + ");" +
"function WireEvents_" + this.ID + "(){"+
" alert('stuff');");
this.strBuilderJS.Append( "}</script>");
Run Code Online (Sandbox Code Playgroud)
然后
ScriptManager.RegisterStartupScript(this, this.GetType(), "strBuilderJS", strBuilderJS.ToString(), false);
Run Code Online (Sandbox Code Playgroud) DECLARE EXIT HANDLER FOR SQLEXCEPTION, SQLWARNING, NOT FOUND
BEGIN
ROLLBACK;
END;
START TRANSACTION;
UPDATE tbl_order SET TransactionID="abc" WHERE OrderID=1;
UPDATE tbl_order SET TransactionID="xyz" WHERE OrderID=;
UPDATE tbl_order SET TransactionID="zzz" WHERE OrderID=13;
COMMIT;
Run Code Online (Sandbox Code Playgroud)
由于某种原因,命令1和13被填充而没有回滚,我得到退出hadler的语法错误.
Query: DECLARE EXIT HANDLER FOR SQLEXCEPTION, SQLWARNING, NOT FOUND BEGIN ROLLBACK
Error Code: 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DECLARE EXIT HANDLER FOR SQLEXCEPTION, SQLWARNING, NOT FOUND …Run Code Online (Sandbox Code Playgroud) 我需要根据上次访问时间删除所有文件(在所有文件夹和子文件夹中递归).
我正在查看Stack Overflow post Batch文件,删除超过N天的文件,建议这个答案:
forfiles -p "C:\what\ever" -s -m *.* -d <number of days> -c "cmd /c del @path"
Run Code Online (Sandbox Code Playgroud)
但是,这会根据上次修改时间而不是上次访问时间删除文件.
还有,有没有办法将命令保存在脚本文件中,所以我可以双击它来运行?
我有一个ashx文件,需要一些查询字符串值来提供适当的图像.
问题是一些搜索引擎urlencode然后htmlencode他们的缓存中的那些网址或当他们索引那些.
所以例如而不是得到
/preview.ashx?file=abcd.jpg&root=small
Run Code Online (Sandbox Code Playgroud)
我明白了
/preview.ashx?file=abcd.jpg&root=small
Run Code Online (Sandbox Code Playgroud)
这基本上抛弃了context.Request.QueryString["root"]所以它认为没有变量根
我想查询字符串中的第二个键是amp; root, 即&符号后面的部分.
我想知道的是,如果有一种方法可以自动html和urldecode服务器端的查询字符串,以便程序不会混淆.
我们正在为我们的一些 url 使用 IIS 7“URL 重写”功能
例如,重写的规则
/viewSompage.aspx?id=123&title=some-title
Run Code Online (Sandbox Code Playgroud)
改写为
/View/SomePage/some-title/123/
Run Code Online (Sandbox Code Playgroud)
出于多种目的(其中之一能够在电子邮件模板中设置重写的 url 等),我们需要在给定字符串的情况下在代码隐藏中获取重写的 url。
我知道重写器会使用出站规则自动应用页面中的那些,但我仍然需要获取重写的 url 以用于其他目的。
我希望能够传递一个 url 字符串,并使 urlrewiter 将任何适用的规则应用于给定的 url 示例
String rewrittenURL = ApplyRewritingRules("/viewSompage.aspx?id=123&title=some-title");
Run Code Online (Sandbox Code Playgroud)
提前致谢
1)使用c#正则表达式
我目前有以下正则表达式
^(abc|def)$
Run Code Online (Sandbox Code Playgroud)
如果单词是“abc”或“def”,它会返回 true,我需要的是它匹配除这两个单词之外的任何内容,包括包含这些单词的字符串。我目前这样做
Regex rgx = new Regex("^(abc|def)$");
if(!rgx.IsMatch(somestring)){
// do stuff
}
Run Code Online (Sandbox Code Playgroud)
我想要的是一个正则表达式,我不必使用!操作员。所以我需要类似的东西(请参阅新正则表达式中的!运算符,但它不起作用。)
Regex rgx = new Regex("^(!(abc|def))$");
if(rgx.IsMatch(somestring)){
// do stuff
}
Run Code Online (Sandbox Code Playgroud)
某些字符串的预期结果
废话 --> 正确
abc 等等 --> 正确
abc --> 假
def --> 假
废话定义 --> 正确
希望这是有道理的..提前致谢。
只是为了澄清,我并不是想在字符串中查找单词,我想将整个字符串与正则表达式进行比较......因此^()$
至于为什么不只使用 !rgx.IsMatch,我们只是想看看是否可以使用正则表达式
c# ×5
.net ×3
asp.net ×3
mysql ×2
ajax ×1
c#-4.0 ×1
duplicates ×1
exception ×1
innodb ×1
insert ×1
javascript ×1
jquery ×1
powershell ×1
regex ×1
transactions ×1