小编Oli*_*ver的帖子

将查询字符串式信息放在asp.net的位置栏中的正确方法

我正在开发一个asp.net 4.0应用程序.其中一个站点是允许用户搜索数据库中的东西.完成的页面如下所示:

<asp:Panel ID="pnlSearch" runat="server" DefaultButton="lnkSearch" cssclass="searchbar box">
    <span id="searchFor"><strong>Search for</strong></span>
    <asp:TextBox ID="txtSearch" runat="server"></asp:TextBox>                 
    <asp:LinkButton ID="lnkSearch" runat="server" Text="Search" onclick="lnkSearch_Click"></asp:LinkButton>              
</asp:Panel>
Run Code Online (Sandbox Code Playgroud)

lnkSearch_Click对数据库执行查询,然后将结果绑定到a asp:Repeater.

这一切都有效,但是存在一个问题:用户没有更改URL,因此用户无法保存查询以供日后使用,也无法链接到他们的朋友.

我可以通过做一些类似的事来解决这个问题:

<script>
    function doSearch() { location.href='~/defaultpro.aspx?search='+escape($('txtSearch').value);
</script>
<a ID="lnkSearch" href="javascript:void(0);" Text="Search" onclick="doSearch();" />
Run Code Online (Sandbox Code Playgroud)

但这感觉就像避免使用asp.net提供的工具一样.有一个更好的方法吗?

c# asp.net

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

更新 SQL Server 中的十进制值字段

我想对我的数据库执行以下操作:

UPDATE Addresses

SET Latitude = 1000, Longitude = 1000
WHERE Latitude IS NULL AND Longitude IS NULL
Run Code Online (Sandbox Code Playgroud)

1000 不是有效的纬度或经度。Latitude并且Longitude是我数据库中的新列,我不希望任何字段为空。我在应用程序中处理无效的纬度和经度值,但将它们设为 null 会造成困难。

当我尝试运行此查询时,出现以下错误:

Msg 8115, Level 16, State 8, Line 3
Arithmetic overflow error converting int to data type numeric.
The statement has been terminated.
Run Code Online (Sandbox Code Playgroud)

Latitude 和 Longitude 列的数据类型都是Decimal(18,15). 我假设我必须以特定方式编写这些十进制条目,但我无法弄清楚它是什么。

有人可以启发我吗?

sql-server-2008

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

提交后在文件中包含修订号?

我正在使用TortoiseHg作为我网站的版本控制系统.我想在网站上放一个标签,报告服务器上的当前版本.而不是手动更新,我希望它是自动的.

如果我可以设置TortoiseHg在每次提交时将修订号写入文件,我可以设置我的网站在每次更改时加载版本号,并将此编号呈现给页面.是否有可能让TortoiseHg这样做?

asp.net mercurial tortoisehg

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

CRC产生的速度有多快?

我需要为网络上的图像文件生成etags.我想到的一个可能的解决方案是计算图像文件的CRC,然后将它们用作etag.

这将要求每次有人在服务器上请求图像时计算CRC,因此非常重要的是可以快速完成.

那么,生成CRC的算法有多快?或者这是一个愚蠢的想法?

c# crc

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

在SQL Server中缓存已连接的表

我的网站有一个运行速度很慢的搜索程序.减慢它的一件事是它必须做的8个表连接(它还有一个WHERE关于~6个搜索参数的子句).我尝试使用各种方法(例如添加索引)来加快查询速度,但这些方法没有帮助.

我有一个想法是缓存8表连接的结果.我可以创建一个临时连接表,并使搜索过程查询该表.我可以每10分钟左右更新一次表格.

使用伪代码,我会将我的程序更改为如下所示:

IF CachedTable is NULL or CachedTable is older than 10 minutes
    DROP TABLE CachedTable
    CREATE TABLE CachedTable as (select * from .....)
ENDIF

Select * from CachedTable Where Name = @SearchName
                            AND EmailAddress = @SearchEmailAddress
Run Code Online (Sandbox Code Playgroud)

这是一个有效的策略吗?我真的不知道我需要什么语法来解决这个问题,或者如果两个查询同时发生,我需要锁定什么来阻止事情的发生.

此外,CachedTable每次制作新作品可能需要相当长的时间,所以我想在计算机图形学中尝试双重缓冲:

IF CachedTabled is NULL
    CREATE TABLE CachedTable as (select * from ...)
ELSE IF CachedTable is older than 10 minutes
    -- Somehow do this asynchronously, so that the next time a search comes
    -- through the …
Run Code Online (Sandbox Code Playgroud)

sql sql-server-2005

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

一个简洁的方法来分为两个并重新排序列表?

我有一个这样的有序列表:

var list = new List<String>(){"aaa","aab","aac","baa","bab","bac"};
Run Code Online (Sandbox Code Playgroud)

我希望将列表切成两半并反转两半的顺序,同时保留两个子列表的顺序.我能想到的唯一方法就是这样:

var list = new List<String>() { "aaa", "aab", "aac", "baa", "bab", "bac" };
int index = list.IndexOf("aac");
var tempList = new List<String>(list.GetRange(index, list.Count - index));
tempList.AddRange(list.GetRange(0, index));
list = tempList;
Run Code Online (Sandbox Code Playgroud)

这需要5行和一个临时变量,看起来不太好.

有没有更简洁的方法来做到这一点?我认为应该可以使用Linq,但大多数方法似乎并不关心底层列表的顺序.

有任何想法吗?

c#

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

调试对象无法完成?

我的应用程序中有以下代码,以帮助我检查ViewModel是否正确完成:

#if DEBUG
    static int openViewModels = 0;

    protected AbstractViewModel()
    {
        openViewModels++;
    }

    ~AbstractViewModel()
    {
        openViewModels--;
        System.Diagnostics.Debug.WriteLine(openViewModels);
    }
#endif
Run Code Online (Sandbox Code Playgroud)

我的应用程序中的所有viewModel都派生自此类.我发现随着时间的推移,openViewModels增加,暗示某些viewModel无法完成.

我无法弄清楚为什么会这样 - 我盯着我的代码,但我看不出是什么导致一些物体留在身边.是否有任何工具或程序可以帮助我找出阻止这些对象最终确定的内容?

c# debugging finalizer

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

从iphone上的视频输出中获取静止图像?

我正在编写一个应用程序来显示iphone相机所看到的光线条件的统计数据.我每秒拍摄一张图像,并对其进行计算.

要捕获图像,我使用以下方法:

-(void) captureNow
{
    AVCaptureConnection *videoConnection = nil;
    for (AVCaptureConnection *connection in captureManager.stillImageOutput.connections)
    {
        for (AVCaptureInputPort *port in [connection inputPorts])
        {
            if ([[port mediaType] isEqual:AVMediaTypeVideo] )
            {
                videoConnection = connection;
                break;
            }
        }
        if (videoConnection) { break; }
    }

    [captureManager.stillImageOutput captureStillImageAsynchronouslyFromConnection:videoConnection completionHandler: ^(CMSampleBufferRef imageSampleBuffer, NSError *error)
     {   
         NSData *imageData = [AVCaptureStillImageOutput jpegStillImageNSDataRepresentation:imageSampleBuffer];
         latestImage = [[UIImage alloc] initWithData:imageData];
     }];
}
Run Code Online (Sandbox Code Playgroud)

然而,该captureStillImageAsynhronously....方法导致手机播放"快门"声音,这对我的应用程序没有好处,因为它将不断捕获图像.

我已经读过,无法禁用此声音效果.相反,我想从手机的视频输入中捕获帧:

AVCaptureDeviceInput *newVideoInput = [[AVCaptureDeviceInput alloc] initWithDevice:[self backFacingCamera] error:nil];
Run Code Online (Sandbox Code Playgroud)

并希望将这些变成UIImage对象.

我怎么做到这一点?我不太了解AVFoundation的工作原理 - 我下载了一些示例代码并为我的目的修改了它.

iphone objective-c

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

Lucene.net/Lucene的最低分数?

是否有可能设置一个最低分数,以便在Lucene中返回结果?

我有这个功能:

public Tuple<int,ICollection<Guid>> Search(string searchQuery,int maxResults)
{
    var booleanQuery = new BooleanQuery();
    var s1 = new TermQuery(new Term("companyName", searchQuery));
    booleanQuery.Add(s1, Occur.SHOULD);

    using (var searcher = new IndexSearcher(this.Directory))
    {
        TopDocs hits = searcher.Search(booleanQuery, maxResults);

        var ids = new List<Guid>();
        for (int i = 0; i < hits.ScoreDocs.Count(); i++)
        {
            var idString = searcher.Doc(hits.ScoreDocs[i].Doc).Get("id");
            ids.Add(new Guid(idString));
        }
        return new Tuple<int, ICollection<Guid>>(hits.TotalHits, ids);
    }
}
Run Code Online (Sandbox Code Playgroud)

该功能搜索我的索引并返回与searchQuery匹配的公司的ID,以及匹配搜索的公司总数 - 因此我可以写'显示245个匹配公司中的1-20个'.

我的问题是匹配的门槛非常低.如果用户输入"会计",则搜索返回有意义的结果,但如果他们输入"adasdfsdf",则返回不相关的结果.如果结果不够充分,我宁愿显示"抱歉,没有公司符合您的查询"这样的消息.

是否可以为比赛设定最低分数?该TopDocs.TotalHits物业会尊重这个分数吗?

c# lucene lucene.net

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

在Entity Framework中添加+修改对象时的奇怪困难

我在使用codefirst Entity Framework时遇到了很多麻烦.

我有一个包含两个表的数据库 - UsersCountries.Users有一个具有外键的字段CountryId.首次将用户添加到数据库时,FK会更新.但是,如果我尝试更新我附加到新DbContext的用户的FK,则不会发生任何更改.

我可以在最初创建用户的上下文中更新FK.此外,我可以在从数据库中检索用户的上下文中更新FK.但是,在我只是Attach用户的上下文中,即使普通nvarcharint字段更新,FK字段也不会更新.

这是我的DbContext:

class DataContext : DbContext
{
    public DbSet<User> Users { get; set; }
    public DbSet<Country> Countries { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

这是我的模型:

public class User
{
    public int UserId { get; private set; }
    public string Name { get; set; }
    public virtual Country Country { get; set; }

}

public class Country
{
    public int CountryId { get; private …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework ef-code-first

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