小编LCJ*_*LCJ的帖子

如何在Repeater中获取文字内容值

我有一个中继器,如下所示.如何在代码中获取报告ID(来自hiddenContent2中的表达式)?

表达是

<%# Eval("ReportID") %>
Run Code Online (Sandbox Code Playgroud)

注意:我更喜欢使用"FindControl"的方法.

ASP.NET

<asp:Repeater ID="rptReports" runat="server">
    <HeaderTemplate>
        <div></div>
    </HeaderTemplate>
    <ItemTemplate>
        <div id="repeaterIdentifier" class="repeaterIdentifier">
            <div id="reportTitle" class="reportTitle">
                <%# Eval("Title") +":" %>
            </div>
            <div id ="reportFrequency" class="reportFrequency">
                <%# " Frequency - "+ Eval("Frequeny") %>
            </div>
        </div>

        <div class="reportContent">
            <div class="repeaterLine">
                <asp:TextBox ID="txtEmailRecipients" runat="server" class="textEdit" Text='<%# Eval("Recipients")%>' TextMode="MultiLine"></asp:TextBox>
            </div>
        </div>

        <div id="hiddenContent2"> 
             <%# Eval("ReportID") %>
        </div>
    </ItemTemplate>
</asp:Repeater>
Run Code Online (Sandbox Code Playgroud)

代码背后

protected void Save_Click(object sender, EventArgs e)
{
    foreach (RepeaterItem item in rptReports.Items)
    {
        foreach(Control c in item.Controls)
        { …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net repeater

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

避免使用一个字典的更好代码 - 案例敏感性问题

我有以下方法用数据读取器中的值填充字典.数据读取器字段与传递给方法的属性之间可能存在不匹配的情况.在下面的方法中,我首先将属性转换为小写以解决此问题.这会导致两个词典.有没有更好的方法来实现这一个字典?

private Dictionary<string, object> FillDictionaryWithReaderValues(List<string> propertiesOfAllEntities, IDataReader reader)
{
   Dictionary<string, object> lowerCaseDictionary = new Dictionary<string, object>();
   Dictionary<string, object> propertyResultList = new Dictionary<string, object>();

   foreach (var item in propertiesOfAllEntities)
   {
      lowerCaseDictionary.Add(item.ToLower(), null);
   }

   for (int i = 0; i < reader.FieldCount; i++)
   {
      lowerCaseDictionary[reader.GetName(i).ToLower()] = reader[i];
   }

   foreach (var item in propertiesOfAllEntities)
   {
      propertyResultList.Add(item, lowerCaseDictionary[item.ToLower()]);
   }

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

.net c# linq

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

从数据库smallint到C#nullable int的转换错误

我在smallint数据类型的数据库中有一个security_role_cd列.我正在使用以下代码将此列选入nullable int变量.

我收到以下错误:

错误3无法确定条件表达式的类型,因为'null'和'short'之间没有隐式转换

克服此错误的正确代码是什么?

SELECT R.security_role_cd  FROM Security_Role R WHERE security_role_name = 'Admin'
Run Code Online (Sandbox Code Playgroud)

C#

        int? roleID = null;
        string commandText = "SELECT R.security_role_cd  FROM Security_Role R WHERE security_role_name = @roleName";
        SqlCommand command = new SqlCommand(commandText, connection);
        command.CommandType = System.Data.CommandType.Text;
        command.Parameters.AddWithValue("@roleName",roleName);
        SqlDataReader readerRole = command.ExecuteReader();
        if (readerRole.HasRows)
        {
            while (readerRole.Read())
            {
                roleID = readerRole.GetInt16(0) == 0 ? null : readerRole.GetInt16(0) ;

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

.net c# ado.net

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

溢出检查不起作用

我有以下代码,其中数字乘以60000,将分钟转换为毫秒.我已经实现了溢出检查,如下所示.我仍然得到以下代码分析交战.如何克服这个警告而不压制它?

警告:CA2233:更正'ApplicationSessionDAL.IsSessionExpired(short)'中'sessionExpiryValueInMinutes*60'操作中的潜在溢出

注意:TimeSpan.TotalMilliseconds属性double数据类型

    public void IsSessionExpired(Int16 sessionExpiryValueInMinutes)
    {

        if (sessionExpiryValueInMinutes > (double.MaxValue) / 60000)
        {
            //Overflow check
            throw new ArgumentOutOfRangeException("sessionExpiryValueInMinutes");
        }
        else
        {
            //int milliSecondsValue  = sessionExpiryValueInMinutes * 60 * 1000;

            DateTime lastAccessTime = new DateTime(2013, 1, 1);
            TimeSpan elapsedTime = (DateTime.Now - lastAccessTime);
            if (elapsedTime.TotalMilliseconds > (sessionExpiryValueInMinutes * 60 * 1000))
            {
                bool isTimeExpired = true;
            }

        }

    }
Run Code Online (Sandbox Code Playgroud)

参考

  1. 为什么FxCop警告此C#代码中的溢出(CA2233)?

.net c#

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

WCF服务 - 自托管服务不起作用

我在VS 2010中创建了一个WCF服务应用程序.当我执行它时,我在以下本地URL中获得了服务页面

在此输入图像描述

我创建了另一个自托管控制台应用程序,如下所示 它抛出以下异常

HTTP无法注册URL.您的进程没有此命名空间的访问权限(有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkId=70353).

好吧,我对49609端口号没什么特别的兴趣.我刚刚从其他工作服务中复制了它.

现在,我没有运行WCF服务的最低权限.我需要做些什么改变才能使以下代码成功?

注意:我没有机会获得此计算机的管理员权限.

注意:我可以使用任何可用的端口号.

namespace ConsoleApplication1
{
class Program
{
    static void Main(string[] args)
    {
        string baseAddress = "http://" + Environment.MachineName + ":49609/Service";
        ServiceHost host1 = new ServiceHost(typeof(Service1), new Uri(baseAddress));
        host1.AddServiceEndpoint(typeof(ConsoleApplication1.IService1), new BasicHttpBinding(), baseAddress);
        host1.Open();

    }
    static Binding GetBinding()
    {
        BasicHttpBinding result = new BasicHttpBinding();
        return result;
    }

}

}
Run Code Online (Sandbox Code Playgroud)

服务

public class Service1 : IService1
{
    public int Add(int n1, int n2)
    {
        return n1 + n2;
    }
}

[ServiceContract]
public interface …
Run Code Online (Sandbox Code Playgroud)

wcf

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

Kendo Template中的Javascript给出了错误的结果

我有一个带有javascript的模板

    # if(IsSelected) { #
    <tr>
        <td data-bind="text: name"></td>
        <td data-bind="text: age"></td>
    </tr>
    # } #
Run Code Online (Sandbox Code Playgroud)

它仅用于显示IsSelected值为true的记录.虽然它只显示两条记录 - 但显示的记录不正确.这是什么原因?

小提琴:http://jsfiddle.net/Lijo/Z86dq/4/

<html>
<head>
    <title>Template Filtering</title>
    <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
    <script src="http://cdn.kendostatic.com/2013.2.716/js/kendo.all.min.js"></script>
      <script id="row-template" type="text/x-kendo-template">
        # if(IsSelected) { #
        <tr>
            <td data-bind="text: name"></td>
            <td data-bind="text: age"></td>
        </tr>
        # } #
    </script>
    <!--MVVM Wiring using Kendo Binding-->
    <script type="text/javascript">

        $(document).ready(function () {
            kendo.bind($("body"), viewModel);
        });

    </script>
    <script type="text/javascript">
        var viewModel = kendo.observable({

            employees: [
                        { name: "Lijo", age: "28", IsSelected: true …
Run Code Online (Sandbox Code Playgroud)

javascript jquery kendo-ui

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

jQuery Ajax错误对象未定义

我使用了一个名为jquery ajax的web方法.我点击错误回调.很好 - 我以为我会分析错误 - 但它是未定义的.

错误值未定义的可能性有多大?如果这是一个微不足道的错误,如何解决这个问题?

注意:xhr,status并且error未定义.

注意:我使用的是Chrome 35和IE 8

$(document).ready(function () {
    function errorFunction(xhr, status, error) {
        console.log(xhr);
        if (xhr == 'undefined' || xhr == undefined) {
            alert('undefined');
        } else {
            alert('object is there');
        }
        alert(status);
        alert(error);
    }

    $.ajax({
        type: "POST",
        url: "admPlantParametersViewEdit.aspx/GetResult",
        data: "{}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {
            alert("success");
            alert(msg.d);
        },
        error: errorFunction()
    });
});
Run Code Online (Sandbox Code Playgroud)

javascript jquery

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

交易期间的MSDTC异常:C#

我在C#应用程序的事务中获得MSDTC异常.该功能是在从csv文件读取后将十万(十万)个zipcode记录上载到数据库表中.此操作在大约20个批处理数据库操作中完成(每个批处理包含5000个记录).如果我不使用事务,功能正常.

有趣的是,使用交易的其他功能可以完成交易.这导致我假设异常消息是误导性的.

关于可能出现什么问题的任何想法?

例外:"已禁用分布式事务管理器(MSDTC)的网络访问.请使用组件服务管理工具在MSDTC的安全配置中启用DTC以进行网络访问."

来源:System.Transactions

内部异常:"事务管理器已禁用其对远程/网络事务的支持.(HRESULT异常:0x8004D024)"

注意:事务中有一个for循环.它引起了任何问题吗?

实际要求是:zipcode表中有一些现有的zipcodes.管理员每个月都会上传新的zipcode csv文件.来自csv的新项目已插入.csv中不可用的邮政编码(但存在于数据库中)被视为已停用且将被删除.退役邮政编码列表将返回到用户界面.新添加的邮政编码也需要退回.

    private void ProcessZipCodes(StringBuilder dataStringToProcess, int UserID)
    {
        int CountOfUnchangedZipCode = 0;
        string strRetiredZipCode = "";
        string strNewZipCode = "";
        dataStringToProcess.Remove(dataStringToProcess.Length - 1, 1);

        if (dataStringToProcess.Length > 0)
        {

            List<string> batchDataStringList = GetDataStringInBatches(dataStringToProcess);

           //TimeSpan.FromMinutes(0) - to make transaction scope as infinite.
            using (TransactionScope transaction = TransactionScopeFactory.GetTransactionScope(TimeSpan.FromMinutes(0)))
            {

                foreach (string dataString in batchDataStringList)
                {
                    PerformDatabaseOperation(dataString, UserID);
                }

                transaction.Complete();
            }
        }


    }

    private List<string> GetDataStringInBatches(StringBuilder dataStringToProcess)
    {

        List<string> batchDataStringList = new List<string>();
        int loopCounter …
Run Code Online (Sandbox Code Playgroud)

c# msdtc transactions sql-server-2005 exception

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

SQL查询非字母名称字段

我在employee表中有一个Name列.我希望看到所有员工姓名都有字母以外的字符.对此最好的查询是什么?

另一个要求:返回所有甚至没有单个字母的名称.

注意:在这种情况下,任何其他英文字母都不被视为字母.在我的场景中,'AndréMüller'的文字中有一些非字母的字符.

DECLARE @Employee TABLE (EmpID INT, EmpName VARCHAR(1000))
INSERT INTO @Employee (EmpID, EmpName) VALUES(1,'André Müller')
INSERT INTO @Employee (EmpID, EmpName) VALUES(2,'Lijo')
INSERT INTO @Employee (EmpID, EmpName) VALUES(3,'88')
INSERT INTO @Employee (EmpID, EmpName) VALUES(4,'--@#')
INSERT INTO @Employee (EmpID, EmpName) VALUES(5,'é ü')
Run Code Online (Sandbox Code Playgroud)

Aproach 1和Approach 2都在工作(感谢发布答案的人).哪个更好,为什么?

--Aproach 1
SELECT * FROM @Employee WHERE EmpName COLLATE Latin1_General_CI_AS LIKE '%[^a-z]%'

--Approach 2
SELECT * FROM @Employee WHERE EmpName LIKE '%[^a-zA-Z]%'
Run Code Online (Sandbox Code Playgroud)

谢谢

Lijo

.net sql t-sql sql-server plsql

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

C#将字符串CONTENTS转换为字节数组

我的字符串包含字节(例如0x27),基本上我需要做的是将包含字节数据的字符串数组转换为byte数据类型,然后我可以对其进行编码UTF8,因此它显示有意义的信息.

1个字符串数组包含:

0x37,0x32,0x2d,0x38,0x33,0x39,0x37,0x32,0x2d,0x30,0x31

我需要转换为字节数组,这可能吗?

我的代码是:

        string strData;
        string strRaw;

        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.InnerXml = Data;
        XmlElement xmlDocElement = xmlDoc.DocumentElement;

        strData = xmlDocElement.GetAttribute("datalabel").ToString();
        strRaw = xmlDocElement.GetAttribute("rawdata").ToString();

        string[] arrData = strData.Split(' ');
        string[] arrRaw = strRaw.Split(' ');
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.

c# arrays string byte

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