我有一个中继器,如下所示.如何在代码中获取报告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) 我有以下方法用数据读取器中的值填充字典.数据读取器字段与传递给方法的属性之间可能存在不匹配的情况.在下面的方法中,我首先将属性转换为小写以解决此问题.这会导致两个词典.有没有更好的方法来实现这一个字典?
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) 我在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) 我有以下代码,其中数字乘以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)
参考
我在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) 我有一个带有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) 我使用了一个名为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) 我在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) 我在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
我的字符串包含字节(例如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)
谢谢你的帮助.