小编joh*_*hna的帖子

SQL Server索引 - 索引中包含哪些列?

问题1:在SQL Server数据库中为外键列创建索引是否值得?

Q2:如果我在SQL Server数据库中有两个相关的表,并且我想在外键列上创建索引以提高性能,那么我需要在索引中包含哪些列以及哪种类型的索引最适合?

例如...

Table1

Table1ID int(主键)

Table2

Table2ID int(主键)
Table1ID int(外键)

..我是否只使用Table1ID为Table2创建索引,或者我是否还需要包含主键(Table2ID).

问题3:如果我扩展示例以包含与Table1和Table2相关的第三个表,我是为每列创建一个索引还是为两个列创建一个索引?

Table3

Table3ID int(主键)
Table1ID int(外键)
Table2ID int(外键)

sql-server

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

迁移到SQL Server 2012后的RAISERROR问题

移动服务器后,我正在处理网站和数据库的一些问题.该数据库以前是SQL Server Express 2005,但现在正在SQL Server Express 2012上运行.

这些问题与2012年的RAISERROR命令和更改有关.我查看了新语法的文档,但不确定如何将错误号和消息传递给网站.

存储过程和触发器中的RAISERROR命令的一些示例是:

RAISERROR 50000 'Member with same Email address already exists.'

RAISERROR 44447 'The record can''t be added or changed. Referential integrity rules require a related record in table ''tblBrand''.'

RAISERROR 44446 'The record can''t be added or changed. Referential integrity rules require a related record in table ''tblFragranceHouse''.'
Run Code Online (Sandbox Code Playgroud)

我已经改变了一些新的语法,但我不确定我是否正确地做了这个.我明白,如果我只是传递错误文本,它会传递错误号50000.但我不知道如何处理其他错误代码.

关于如何将这些命令翻译成2012的任何建议?

sql-server sql-server-2012

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

在C#中使用IFilter并从数据库而不是文件系统中检索文件

对于C#Web应用程序,我希望索引存储在数据库中的PDF,DOC等文件的文本.

我一直在试验Code Project上的IFilter示例,该示例适用于文件系统中的文件,但我的文件存储在MS-SQL数据库中.

任何人都可以帮我找到一个样本来从存储在数据库中的文件中提取文本,或者知道如何修改Code Project代码以使用数据库而不是文件系统?

c# ifilter

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

如果在 ASP.NET 中关闭窗口但不在 PostBack 上显示消息

我只想在用户关闭我的 ASP.NET Web 窗体页面或离开它时向用户显示一条消息。如果他们单击任何 Button、LinkBut​​ton、AutoPostBack 元素或任何其他将回发的元素,那么我不想显示该消息。

到目前为止,我有以下代码:

<script type="text/javascript">

var postback = false;

addToPostBack = function(func) {
    var old__doPostBack = __doPostBack;
    if (typeof __doPostBack != "function") {
        __doPostBack = func;
    } else {
        __doPostBack = function(t, a) {
            if (func(t, a)) old__doPostBack(t, a);
        }
    }
};

$(document).ready(function() {
    addToPostBack(function(t,a) {
        postback = true;
    });
});

$(window).bind("beforeunload", function() {
    if (!postback) {
        return "message";
    }
});
</script>
Run Code Online (Sandbox Code Playgroud)

这部分有效,但似乎阻止了 AutoPostBack 事件的触发,并且仍然显示 LinkBut​​tons 等的消息。

我怎样才能做到这一点?

javascript asp.net jquery

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

使用mysqli非准备语句时如何保留SQL数据类型

我想在 PHP 中使用 mysqli 使用非准备语句并保留 SQL 数据类型。

php.net此页面上的比较表表明可以执行此操作:

结果集值 SQL 数据类型

准备好的语句:获取时保留

非准备语句:获取时转换为字符串或保留

取货是什么意思?

目前,在类似以下列的代码中,所有的值都是字符串。有没有办法在不使用准备好的语句的情况下保留数据类型?

$conn = new mysqli('db_host', 'db_username', 'db_password', 'db_name');
$conn->set_charset('db_charset');
$result = $conn->query($sql, MYSQLI_USE_RESULT);
$row = $result->fetch_assoc();
Run Code Online (Sandbox Code Playgroud)

注意。无缓冲查询

mysql

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

ASP.NET 4.0单选按钮选中已更改的事件仅触发一次

我有两个单选按钮都设置为更新面板的异步触发器,问题是第一次单击CheckedChanged事件时会触发,但无论点击哪个单选按钮,事件都不会再次触发.

标记:

<asp:RadioButton ID="rdoDeliveryBilling" runat="server" Checked="true" GroupName="DeliveryAddress" Text="Deliver to this address" AutoPostBack="true" OnCheckedChanged="rdoDelivery_CheckedChanged" />
<asp:RadioButton ID="rdoDeliveryShipping" runat="server" GroupName="DeliveryAddress" Text="Deliver to a different address" AutoPostBack="true" OnCheckedChanged="rdoDelivery_CheckedChanged" />
<asp:UpdatePanel ID="panDeliveryAddress" runat="server">
<ContentTemplate>
    ...delivery details form controls and validators goes here...
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="rdoDeliveryBilling" EventName="CheckedChanged" />
<asp:AsyncPostBackTrigger ControlID="rdoDeliveryShipping" EventName="CheckedChanged" />
</Triggers>
</asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)

码:

protected void rdoDelivery_CheckedChanged(object sender, EventArgs e)
{
    ...only code that enables/disables the delivery form controls and validators goes here...
}
Run Code Online (Sandbox Code Playgroud)

我在rdoDelivery_CheckedChanged中设置了一个断点,它只在第一次出现.

有任何想法吗?

c# asp.net

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

HTTP和HTTPS之间的经典ASP会话怪异

我有一个用Classic ASP编写的电子商务网站,它使用Session来存储购物车内容和其他东西.

项目以HTTP格式添加到购物车中,当用户签出时,它们将被带到HTTPS.此时没有问题,HTTPS结帐页面正确获取会话值.

问题是,如果他们点击返回购物车(HTTP),会话就会丢失.

然后,如果他们将商品添加到购物车,则他们会在购物车(HTTP)中正确显示.

但是当他们再次结账(HTTPS)时,原始会话中消失的项目又回来了.

如果他们返回HTTP购物车页面,则会显示不同的项目.

总而言之,我第一次从HTTP转换到HTTPS时工作正常,但之后就像有两个独立的Sessions.

HTTP和HTTPS的域名完全相同.

该网站托管在共享托管环境中.它是64位服务器上的IIS7.

我尝试过集成和经典的托管管道模式.

在web.config中,我为HTTP和HTTPS设置了相同的会话,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <location path="Default Web Site">
        <system.webServer>
            <asp>
                <session keepSessionIdSecure="false" />
            </asp>
        </system.webServer>
Run Code Online (Sandbox Code Playgroud)

知道如何解决这个问题吗?

更新:查看HTTP标头似乎在进入HTTPS时创建了第二个ASP会话Cookie.不知道为什么清除第一个.返回HTTP时,只有原始cookie,但它在会话中不再有任何值,因此可能已经分配了新cookie,而前一个cookie不再有效.

iis-7 asp-classic

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

需要C#Regex来替换字符串中的空格

使用C#,我需要一些代码来使用正则表达式用引号字符(|)替换引号内的空格.问题是该字符串可能包含多个带引号的表达式,我只想要引号内的空格.

我尝试了一些事情,但我正在努力解决如何处理可能在引号内的可变数量的单词等问题.

以下是可输入内容和所需输出的一些示例:

"word1 word2"
- >"word1 | word2"

"word1 word2"word3"word4 word5"
- >"word1 | word2"word3"word4 | word5"

word1"word2 word3"
- > word1"word2 | word3"

任何帮助非常感谢,希望我将学习正则表达式.

c# regex

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

新手MVC隐藏和显示内容的常用做法

我是一名长期的 WebForms 开发人员,但最终通过将我的一个需要更新的 WebForms 站点转换为 MVC3 来学习 MVC。

\n\n

我通过阅读了解了 MVC 的基础知识,但在现实世界中第一天就遇到了可能很简单的事情,我还想知道如何最好地做到这些以及最佳实践。

\n\n

对于这个答案,我\xe2\x80\x99m 没有寻找代码(尽管一点可能有帮助),只是足够的信息让我走上正确的道路。我已经看过很多示例和教程,但似乎没有一个显示与我的情况相关的内容,所以我在这里询问。

\n\n

因此,我正在处理的第一个页面是搜索结果页面。它比简单的搜索页面稍微复杂一些。如果发现单词拼写错误,它有一个建议区域;如果没有找到结果,则有一个建议区域;如果有的话,还有一个搜索结果本身区域。

\n\n

因为它搜索两个数据库表(实际上是视图),所以我有一个模型,其中包含表模型和用于按最相关对结果进行排序的优先级字段。模型是这样的:

\n\n
public class SearchResult\n{\n    public Table1 { get; set; }\n    public Table2 { get; set; }\n    public int Priority { get; set; }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

在 WebForms 中,我使用面板来包含每个区域,以便我可以打开和关闭它们,如下所示:

\n\n
<asp:Panel ID=\xe2\x80\x9dpanSuggest\xe2\x80\x9d runast=\xe2\x80\x9dserver\xe2\x80\x9d Visible=\xe2\x80\x9dfalse\xe2\x80\x9d>\n    \xe2\x80\xa6\n</asp:Panel>\n<asp:Panel ID=\xe2\x80\x9dpanNoResults\xe2\x80\x9d runat=\xe2\x80\x9dserver\xe2\x80\x9d Visible=\xe2\x80\x9dfalse\xe2\x80\x9d>\n    \xe2\x80\xa6\n</asp:Panel>\n<asp:Panel ID=\xe2\x80\x9dpanResults\xe2\x80\x9d runat=\xe2\x80\x9dserver\xe2\x80\x9d>\n    <asp:Repeater ID=\xe2\x80\x9drepResults\xe2\x80\x9d runat=\xe2\x80\x9dserver\xe2\x80\x9d>\n        \xe2\x80\xa6\n    </asp:Repeater>\n</asp:Panel>\n
Run Code Online (Sandbox Code Playgroud)\n\n

在我当前的 WebForms 代码背后的逻辑中,我查看是否有任何拼写错误,如果有,则显示 panSuggest 并隐藏所有其他面板。如果没有错误,那么我会根据需要隐藏 show panResults/panNoResults。

\n\n

那么这种事情在MVC中通常是怎么做的呢?我是否在控制器中设置一个 ViewBag 项来确定是否应显示我在视图中查找的 PanSuggest,然后根据该项选择隐藏/显示,并检查我的模型是否有任何项来确定是否应显示 panResults/panNoResults 。像下面我的代码一样,或者这不是正确的方法?

\n\n
@{ …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc razor

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

检查远程/外部网页是否可用并获取状态代码

我知道有很多关于使用System.Net.WebRequest来检查远程网页是否可用的问题和答案,但我没有发现这些方法对我的情况100%有用.

我需要检查页面是否可用,不返回404或500错误,如果有重定向,那么我想跟踪它们,直到找到工作页面.如果远程页面需要身份验证(401未经授权),我想知道,因为在某些情况下这可能是可以接受的.

发出请求并且远程服务器返回内部服务器错误(500)时,WebRequest引发异常.

我还发现301重定向也会引发异常,但在我的情况下,我想检查重定向是否是有效页面.

有没有其他方法可以检查页面是否存在,并且最好只有在获取标题时出现错误(即无效的域名等)才能获得实际的HTTP状态代码或异常?

这就是我现在正在做的事情,这还不够好......

protected bool URLExists(string url)
{
    bool result = false;

    try
    {
        HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);
        webRequest.Timeout = 1200;
        webRequest.Method = "GET";
        //webRequest.AllowAutoRedirect = true;
        //webRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36";

        HttpWebResponse response = null;

        try
        {
            response = (HttpWebResponse)webRequest.GetResponse();
            //result = true;

            int statusCode = (int)response.StatusCode;
            if (statusCode >= 100 && statusCode < 400) //Good requests
            {
                return true;
            }
            else if (statusCode >= 500 && statusCode …
Run Code Online (Sandbox Code Playgroud)

c# asp.net

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

使用表单 POST 将文件发送到另一台服务器

我需要能够从服务器端经典 ASP 代码将文件发送到另一个网站。另一个网站有一个带有文件上传控件的表单,我需要模拟发布到该表单。

\n\n

我找到了一些看起来非常适合这里工作的示例代码,并且它上传文件没有错误,但是接收到的文件无效,当我在另一台服务器上检查它时,文件的开头在二进制数据具有部分内容之前在其中发布了不应该存在的数据,例如:

\n\n
\n

目录类型:image/jpeg
\n Content-Disposition:表单数据;名称=“文件”;文件名=“archivebox.jpg”

\n\n

\xc3\xbf\xc3\x98\xc3\xbf\xc3\xa0...

\n
\n\n

当我通过表单上传数据时,接收网站代码工作正常,因此看起来问题肯定出在上面的代码上。

\n\n

如果此代码不起作用,其他人可以向我指出另一个以这种方式提交文件的示例吗?

\n

asp-classic

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

我得到错误类,结构或接口成员声明中的标记'{'无效

请帮助我关于"类,结构或接口成员声明中的无效标记'{'错误.我需要有包含员工数据的get和set方法的类

using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

/// <summary>
/// Summary description for HandleEmployeeData
/// </summary>
public class HandleEmployeeData
{
    private int oracle_id;
    private String firstname;

   public String getFirstname();
    {
    return firstname;
    }

    public int getOracleID();
    {
       return oracle_id;

    }

    /*public HandleEmployeeData()
    {
        //
        // TODO: Add constructor logic here
        //
    }*/

}
Run Code Online (Sandbox Code Playgroud)

c# class

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