小编Cas*_*ass的帖子

在C#中读写非常大的文本文件

我有一个非常大的文件,大小近2GB.我正在尝试编写一个进程来读取文件并在没有第一行的情况下将其写出来.我几乎只能一次读写一行,这需要永远.我可以打开它,删除第一行并在TextPad中保存得更快,尽管这仍然很慢.

我使用此代码来获取文件中的记录数:

private long getNumRows(string strFileName)
{
    long lngNumRows = 0;
    string strMsg;

    try
    {
        lngNumRows = 0;
        using (var strReader = File.OpenText(@strFileName))
        {
            while (strReader.ReadLine() != null)
            {
                lngNumRows++;
            }

            strReader.Close();
            strReader.Dispose();
        }
    }
    catch (Exception excExcept)
    {
        strMsg = "The File could not be read: ";
        strMsg += excExcept.Message;
        System.Windows.MessageBox.Show(strMsg);
        //Console.WriteLine("Thee was an error reading the file: ");
        //Console.WriteLine(excExcept.Message);

        //Console.ReadLine();
    }

    return lngNumRows;
}
Run Code Online (Sandbox Code Playgroud)

这只需要几秒钟就可以运行.当我添加以下代码时,它需要永远运行.难道我做错了什么?为什么写入会增加这么多时间?关于如何让它更快的任何想法?

private void ProcessTextFiles(string strFileName)
{
    string strDataLine;
    string strFullOutputFileName;
    string strSubFileName;
    int intPos; …
Run Code Online (Sandbox Code Playgroud)

.net c# wpf streamwriter streamreader

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

WPF Combobox 绑定和 SelectedValue 与 SelectedValuePath

我确实在数据绑定和 MVVM 方法论上挣扎,尽管我喜欢这个概念,但我只是在挣扎。我创建了一个 WPF,它有多个组合框和一个按钮。第一个组合框将列出数据库实例名称。单击按钮后将填充剩余的组合框。由于我对第一个数据库实例组合框有问题,我将只显示我的代码。当应用程序启动时,将加载组合框并按预期选择第一项。问题是,当我选择一个新名称时,我希望调用的方法却没有选择。有人可以帮助我理解为什么public DBInstance SelectedDBInstance当我的 XAML 中有此方法时我的方法没有被执行吗SelectedValue="{Binding SelectedDBInstance, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}

这是我的数据库实例组合框的 XAML。我在这里遇到的一个问题是“值”fpr SelectedValuePath,如果我将其更改为“DBInstanceName”,它将不起作用。

 <ComboBox x:Name="cbxRLFDBInstances" ItemsSource="{Binding DBInstances}" 
                  SelectedValue="{Binding SelectedDBInstance, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" 
                  SelectedValuePath="value" DisplayMemberPath="DBInstanceName"/>
Run Code Online (Sandbox Code Playgroud)

这是我的视图模型代码:

namespace DatabaseTest.ViewModel
{

class RLFDatabaseTableViewModel : INotifyPropertyChanged
{
    Utilities dbtUtilities = new Utilities();


    public RelayCommand LoadDBInfoCommand
    {
        get;
        set;
    }


    public RLFDatabaseTableViewModel()
    {
        LoadDBInstances();

        LoadDBInfoCommand = new RelayCommand(LoadDBInfo);
    }


    public ObservableCollection<DBInstance> DBInstances
    {
        get;
        set;
    }


    public void LoadDBInstances()
    {
        ObservableCollection<DBInstance> dbInstances = new ObservableCollection<DBInstance>();
        DataTable dt = SmoApplication.EnumAvailableSqlServers(false);

        dbInstances.Add(new DBInstance …
Run Code Online (Sandbox Code Playgroud)

c# wpf selectedvalue mvvm

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

SQL Server创建表给出错误,表明对象“”在不存在时已经存在

抱歉,如果这看起来像重复的,但我找不到我的情况的答案。我正在尝试cardissuedates在数据库中创建表NBFP

这是我的创建语句:

USE NBFoodPantry

CREATE TABLE cardissuedates 
(
    clientid char(36) NOT NULL,
    issuedate date NOT NULL

    CONSTRAINT cardissuedates 
       PRIMARY KEY CLUSTERED (clientid ASC)
           WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, 
                 IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, 
                 ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90) ON [PRIMARY]
) ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

消息2714,级别16,状态5,第33
行在数据库中已经有一个名为“ cardissuedates”的对象。

消息1750,级别16,状态0,第33行
无法创建约束或索引。请参阅先前的错误。

该表在NBFB数据库中不存在,并且在检查master和NBFB时找不到。

我试过了

select * 
from sys.all_objects
where name like '%ca%'
order by 1

select * 
from sys.tables
where name like 'c%' …
Run Code Online (Sandbox Code Playgroud)

sql create-table sql-server-2008

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