小编chr*_*dev的帖子

C# File.ReadAllLines 不中断换行

我正在构建一个需要修改配置文件的应用程序。

我的问题是我无法逐行读取文件。我一直把整个文件作为一个字符串。

string ConfigTemplate = AEBuildsSPFolderName + "\\Template_BuildReleaseScript.Config";

string[] fileSourceLines = File.ReadAllLines(ConfigTemplate, Encoding.Default);
//Returns the entire file contents into the first array element.

using (StreamReader reader = new StreamReader(ConfigTemplate))
            {
                string line;
                while ((line = reader.ReadLine()) != null)
//Returns the entire file contents into the first line read.
Run Code Online (Sandbox Code Playgroud)

知道我做错了什么吗?

谢谢,

大卫

.net c# file-io

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

Resharper多个属性生成

这可能是一个惰性请求,但是有没有办法同时生成多个类属性?目前,我有一个很大的未定义属性列表,我可以简单地逐个浏览列表,并生成一个属性 - 但最好突出显示它们并为每个生成一个,下面的示例说明...

在此输入图像描述

你可以在这里看到prop1,prop2...等有错误,因为属性还不存在,但你可以用resharper生成一个属性...

在此输入图像描述

然而,这似乎是一次一个,我想知道我是否错过了一个设置?

c# resharper visual-studio-2013

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

使用ADO.NET从SQL获取单个值

我到目前为止:

// Update status history if the current work flow item has a status
int workflowID = Convert.ToInt32(statusCode.SelectedValue);
string status = "select status from jm_accountworkflowdetail where workid = @workID";

SqlConnection sqlConnection2 = new SqlConnection(sqlDevelopment.ConnectionString);
SqlCommand sqlComm2 = new SqlCommand(status, sqlConnection2);

sqlComm2.Parameters.AddWithValue("@workID", workflowID);
Run Code Online (Sandbox Code Playgroud)

查询将返回一个值('SOC','POS')或(''),表示它没有附加状态.

我需要做的是,如果状态不为空,则执行其他一些代码.但我不知道如何执行所有操作只是为了检查状态是否有值.

c# sql-server ado.net webforms

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

如何在C#中从转发器中找到td?

我有转发器.我想要显示并隐藏条件,我使用下面的代码来做到这一点:

我的HTML代码是:

<table cellpadding="0" cellspacing="0">
    <tr valign="top" class="list_heading">
        <td width="50%">
            Column
        </td>
        <td width="20%">
            Operation
        </td>
        <td width="19%" style="display: none;">
            And/Or
        </td>
        <td width="20%">
            Value
        </td>
        <td width="20%" id="tdvalue2Header" visible="false" runat="server">
            Value2
        </td>
        <td width="10%">
            Remove
        </td>
    </tr>
    <tbody>
        <asp:Repeater ID="rpSearchItems" runat="server" OnItemDataBound="rpSearchItems_ItemDataBound">
            <ItemTemplate>
                <tr>
                    <td style="display: none;">
                    </td>
                    <td>
                        <%# Eval("DisplayName") %>
                    </td>
                    <td>
                        <%# Eval("Operation") %>
                    </td>
                    <td style="display: none;">
                        <%# Eval("AndOr") %>
                    </td>
                    <td>
                        <%# Eval("Value") %>
                    </td>
                    <td id="tdValue2" runat="server">
                        <%# Eval("Value2") %>
                    </td> …
Run Code Online (Sandbox Code Playgroud)

c# asp.net controls repeater find

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

SSIS排除Foreach循环容器中的某些文件

我有一个SSIS包,从特定目录加载csv文件,使用表达式和通配符来获取所有文件.

目前,FileSpec容器的容器会查找具有以下格式的所有文件:

fileName_environment_*

这工作正常.第二组文件现在从同一目录加载,为了区分这些文件,文件格式为:

fileName_environment_business_*

因此,第二个SSIS包只选择新文件,因为文件的结构如下所示:

filename_environment_abc 
filename_environment_def
filename_environment_xyz 
filename_environment_business_abc
filename_environment_business_def 
filename_environment_business_xyz
Run Code Online (Sandbox Code Playgroud)

但第一个包将处理所有文件.

所以,问题是,我可以设置FileSpec第一个SSIS包来忽略格式为的文件:

fileName_environment_business_*

ssis foreach-loop-container

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

Symfony 2.3:更新供应商和清除缓存时找不到CollectionRegionDoctrineCommand

一切正常,直到我实现供应商.

然后,当我清理缓存时,我收到以下错误:

PHP致命错误: 在/ var/app/ondeck/vendor/doctrine/doctrine-bundle/Doctrine/Bundle/DoctrineBundle/Command/Proxy/CollectionRegionDoctrineCommand中找不到 'Doctrine\ORM\Tools\Console\Command\ClearCache\CollectionRegionCommand'.第29行的PHP

php symfony doctrine-orm

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

将Ado.net DataReader转换为IDataRecord会产生奇怪的结果

我有一个针对数据库运行的查询,我可以看到有一个31/05/2013的记录.当我使用ADO.NET从C#运行此查询,然后使用以下代码时,我错过了31/05/2013的记录

var timeSeriesList = new List<TimeSeries>();  
using (var reader = cmd.ExecuteReader())
{
    while (reader.Read())
    {
        timeSeriesList = reader.Cast<IDataRecord>()
            .Select(r => new TimeSeries
                 {
                     MidRate = (double)r["MidRate"],
                     RiskFactorName = (string)r["RiskFactorName"],
                     SeriesDate = (DateTime)r["SeriesDate"]
                 }).ToList();

    }
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我对此代码使用相同的查询:

var timeSeriesList = new List<TimeSeries>();                        
using (var reader = cmd.ExecuteReader())
{
    while (reader.Read())
    {
        var timeSeries = new TimeSeries
                 {
                     MidRate = (double)reader["MidRate"],
                     RiskFactorName = (string)reader["RiskFactorName"],
                     SeriesDate = (DateTime)reader["SeriesDate"]
                 };

        timeSeriesList.Add(timeSeries);
    }
}
Run Code Online (Sandbox Code Playgroud)

...然后2013年5月31日的记录在集合中 - 为什么第一个代码块会给出这个结果?

c# linq ado.net

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

如何正确使用SqlDataReader?

我有两种方法如下:

internal static SqlDataReader SelectData(string sql)
{
    using (var sqlConnection = new SqlConnection(Constant.ConnectionString))
    {
        sqlConnection.Open();
        var sqlCommand = new SqlCommand(sql, sqlConnection);
        var dataReader = sqlCommand.ExecuteReader();
        return dataReader;
    }
}
Run Code Online (Sandbox Code Playgroud)

============

并使用此方法:

var dataReader = SelectData(---some sql ---);

private void AddData(dataReader)
{
    while (dataReader.Read())
    {
        Employee e = new Employee();
        e.FirstNamei = dataReader["Name"].ToString();
    }

    dataReader.Close();
}
Run Code Online (Sandbox Code Playgroud)

我知道我们可以合并这两种方法,但我正在寻找更好的方法来写这个,或者这可能会导致一些问题?

.net c# ado.net

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

强制对象按顺序运行/执行方法

我有一个接受多个集合的类,然后需要按特定顺序对这些集合执行计算.例如

public class ClassCalc
    {
        public ClassCalc(double varEm, 
                          List<List<double>> col1, 
                          List<List<double>> col2)
        {
          //set fields etc.
        }

        public void CalcCols(){
           //here, I will 'zip' col1/col2 to create List<double> for each
        }

        public void CalcStep2(){
           //this is dependent on the results from CalcCols()
        }

        public void CalcNonDependent(){
           //this can be called at any stage
        }
}
Run Code Online (Sandbox Code Playgroud)

构造函数强制客户端提供相关数据,所以有一个明显的方法可以做到这一点,通过调用方法constructor,这样,我知道一切都将被填充.但是,这似乎不是一个干净的解决方案,特别是当我想要对代码的部分单元进行单元测试时.

如果我想进行单元测试CalcNonDependent(),我需要完全初始化对象,当我甚至可能不需要其他两个计算的结果时.

所以,我的问题是,是否存在可用于此特定场景的模式; 我看过Chain of Responsibility&Command Pattern,但想知道是否有人有任何建议

c# design-patterns

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

Web API中的多个GET调用错误操作

我有一个Web API,看起来像以下......

public class LeaguesController : ApiController
{
    //api/Leagues/active/1
    //api/Leagues/complete/1
    //api/Leagues/both/1
    [GET("api/Leagues/{type}/{id}")]
    public List<Competition> Get([FromUri]int id, 
                                [FromUri]CompetitionManager.MiniLeagueType type)
    {
        return CompetitionManager.GetUsersMiniLeagues(id, true, type);
    }

    //api/Leagues/GetMiniLeagueTable/3
    [GET("api/Leagues/GetMiniLeagueTable/{id}")]
    public List<SportTableRow> GetMiniLeagueTable([FromUri]int id)
    {
        return SportManager.GetMiniLeagueTable("", id).TableRows;
    }
}
Run Code Online (Sandbox Code Playgroud)

当我调用第一种方法时Get,这很好用.当我使用fiddler或Chrome REST Client调用第二种方法时GetMiniLeagueTable,我收到以下错误:

{消息:"请求无效." MessageDetail:"参数字典包含参数'type'的非可为空类型'CompetitionManager + MiniLeagueType'的空条目,方法'System.Collections.Generic.List`1 [竞争] Get(Int32,MiniLeagueType)''LeaguesController '.可选参数必须是引用类型,可以为空的类型,或者声明为可选参数." }

AttributeRouting用来装饰方法,但这似乎不起作用.在我介绍之前它工作正常MiniLeagueType.

有人遇到过这个问题,还是你能指出我哪里出错了?

c# asp.net-web-api attributerouting asp.net-web-api-routing

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