小编rob*_*ert的帖子

防止MySQL重复插入时自动增加

使用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版本.

mysql innodb insert duplicates auto-increment

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

jquery ajax未正确捕获c#异常

好吧,我有生产环境的问题以及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)

c# ajax jquery exception

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

asp.net中的动态Javascript

好.我面临的问题是我有自己的自定义控件,我做一个查询,获取记录,并根据数据动态添加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)

.net javascript c# asp.net registerstartupscript

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

mysql事务错误处理

 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)

mysql transactions

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

使用PowerShell递归删除文件

我需要根据上次访问时间删除所有文件(在所有文件夹和子文件夹中递归).

我正在查看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)

但是,这会根据上次修改时间而不是上次访问时间删除文件.

还有,有没有办法将命令保存在脚本文件中,所以我可以双击它来运行?

powershell windows-server-2008

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

解码context.Request中的查询字符串

我有一个ashx文件,需要一些查询字符串值来提供适当的图像.

问题是一些搜索引擎urlencode然后htmlencode他们的缓存中的那些网址或当他们索引那些.

所以例如而不是得到

/preview.ashx?file=abcd.jpg&root=small
Run Code Online (Sandbox Code Playgroud)

我明白了

/preview.ashx?file=abcd.jpg&amp;root=small
Run Code Online (Sandbox Code Playgroud)

这基本上抛弃了context.Request.QueryString["root"]所以它认为没有变量

我想查询字符串中的第二个键是amp; root, 即&符号后面的部分.

我想知道的是,如果有一种方法可以自动html和urldecode服务器端的查询字符串,以便程序不会混淆.

.net c# asp.net windows-server-2008

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

从代码隐藏中获取重写的 url

我们正在为我们的一些 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)

提前致谢

.net c# asp.net url-rewriting c#-4.0

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

正则表达式不匹配特定单词

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# regex regex-negation

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