我正在尝试创建这种通用方法来简化操作,但我想我搞砸了!你能解决我的问题吗?
这编译:
private string ConcatenateText<T1, T2>(MyEntity myEntity)
where T1 : Supplier, new()
where T1 : Employee, new()
where T2 : SupplierDepartment, new()
where T2 : EmployeeDepartment, new()
{
T1 p = new T1();
T2 r = new T2();
//Code here for myEntity treatment
return mystring;
}
Run Code Online (Sandbox Code Playgroud)
虽然这不编译:
protected void mybutton1_Click(object sender, EventArgs e)
{
string mystring = ConcatenaText<Supplier, SupplierDepartment>(myEntity);
}
//This does not compile
protected void mybutton2_Click(object sender, EventArgs e)
{
string mystring = ConcatenaText<Employee, EmployeeDepartment>(myEntity);
}
Run Code Online (Sandbox Code Playgroud)
消息:类型Supplier不能用作泛型类型或方法ConcatenateText(MyEntity myEntity)中的类型参数T1.从供应商到员工没有隐式参考转换
可以这样做吗?我究竟做错了什么?可以改进吗? …
是否可以在日期和时间格式之间添加"at"一词?我尝试添加它就像这样"dddd,d MMM,yyyy at HH:mm"但webapp正在根据区域配置CA或AU将其转换为"aA"或"aP"
Console.WriteLine(DateTime.Now.ToString("dddd, d MMM, yyyy at HH:mm"));
Run Code Online (Sandbox Code Playgroud)
我忘了说.我必须是一个格式字符串,没有复杂或连接函数.
我想知道如何将DataTable转换为Dictionary.我做了这样的事.
using System.Linq;
internal Dictionary<string,object> GetDict(DataTable dt)
{
return dt.AsEnumerable()
.ToDictionary<string, object>(row => row.Field<string>(0),
row => row.Field<object>(1));
}
Run Code Online (Sandbox Code Playgroud)
但我得到:
System.Data.EnumerableRowCollection不包含'ToDictionary'的定义和最佳扩展方法重载'System.Linq.Parallel.Enumerable.ToDictionary(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IEqualityComrparer)'有一些无效的争论
我该如何解决这个问题?
谢谢
我有一个Employee类型的对象,它有一个Guid属性.我知道如果我想设置为null我必须将我的type属性定义为可空的Nullable<Guid>prop或Guid?支柱.
但在我的情况下,我无法改变道具的类型,所以它将保持为Guid类型和我的同事,我们不想使用Guid.Empty.
有没有办法将我的属性设置为null或string.empty,以便将数据库中的字段重新设置为null.
我有一个从string.empty转换为null的机制,但如果将更改为接受空guid为null,我将更改许多内容.
请帮忙!
我的配置是里斯本时区.当我这样做时,new Date()我得到当前的当地日期/时间Fri Apr 28 2017 01:10:55 GMT+0100 (GMT Daylight Time)
当我获得ISO字符串时toISOString(),它将应用时区,我会得到:
2017-04-28T00:10:55.964Z
Run Code Online (Sandbox Code Playgroud)
问题是几分钟前的日期时间是这样的(昨天):
2017-04-27T23:45:05.654Z
Run Code Online (Sandbox Code Playgroud)
我尝试了moment.js(对此我不熟悉),我做了类似的事情
document.write(moment('2017-04-28').format())
Run Code Online (Sandbox Code Playgroud)
但我得到的2017-04-28T00:00:00+01:00不是这个2017-04-28T00:00:00.000Z
我想将此值作为restful方法的参数传递,以自动将其解析为DateTime类型,但如果我从moment.js格式传递输出,那么它将被解析为 2017-04-27 23:00:00.00
如果我new Date()用new Date('2017-04-27')(或日期部分)创建一个新的日期,我只想得到如下的ISO格式,没有时间没有时区
2017-04-28T00:00:00.000Z
Run Code Online (Sandbox Code Playgroud)
是否有类似toISOString()的javascript方法或使用可能的时刻来获取该格式?
无论什么时区或时刻,我只是模拟那是给定日期的午夜.
有没有办法在没有用日期部分重建新日期或格式化它的情况下在 javascript 中获取新日期类型的 ISO 字符串和午夜时间?
我一直在尝试这个
var date = new Date();
date.setHours(0, 0, 0, 0);
document.write(date.toISOString());
Run Code Online (Sandbox Code Playgroud)
我得到了这个
2017-04-20T04:00:00.000Z
Run Code Online (Sandbox Code Playgroud)
我想得到这个
2017-04-20T00:00:00.000Z
Run Code Online (Sandbox Code Playgroud)
是否有我一直在尝试的内置函数或方法来获得所需的输出(使用日期部分重建日期对象)?
我有一组不同的对象,我想知道我是否可以创建分组相同类型对象的集合.我不知道是否有一个方法与linq或类似的东西.
List<Object> list = new List<Object>();
Object1 obj1 = new Object1();
Object2 obj2 = new Object2();
Object1 obj3 = new Object1();
Object3 obj4 = new Object3();
Object3 obj5 = new Object3();
list.Add(obj1);
list.Add(obj2);
list.Add(obj3);
list.Add(obj4);
list.Add(obj5);
Run Code Online (Sandbox Code Playgroud)
我想要相同类型的新列表:
List<Object1> newList1 = method.GetAllObjectsFromListObject1 // Count = 2
List<Object2> newList2 = //GetAllObjectsFromListObject2 // Count = 1
List<Object3> newList3 = //GetAllObjectsFromListObject3 // Count = 2
Run Code Online (Sandbox Code Playgroud) 一位前同事写道:
String.Format("{0:#;;} {1:records;no records;record}", rows, rows - 1);
//Rows is a integer value
Run Code Online (Sandbox Code Playgroud)
我读过这些文章
代码项目 - .NET MSDN中的自定义字符串格式
- 自定义数字格式字符串
但我仍然不知道这种格式是如何工作的.显然我可以看到输出,但我不明白这部分{0:#;;}和第二部分.我想做同样的事情来指定年龄(年,年......)
我对这种字符串格式很好奇.有人可以解释这种行为吗?作者不再与我们合作了.
我最近发现当我在包含撇号的字段下进行LINQ选择时,它会使我的应用程序抛出异常.
DataRow[] newDr = this.ds.Tables["TableName"].Select("Name = '" + drData["Name"].ToString() + "'");
Run Code Online (Sandbox Code Playgroud)
如果drData ["姓名"] ="商家的钱"
I got an exception of "Syntax error: Missing operand after 'S' operator "
任何人都可以告诉我如何保存它,不要更换或删除它,好吗?
我最近在 SQL Server 2008 开发环境中创建了一个像这样连接日期和时间的函数
select cast('2016-11-09 15:35:00' AS DATE) + CAST('00:00:00' AS DATETIME)
Run Code Online (Sandbox Code Playgroud)
在 SQL Server 2008 中它运行良好,但在 SQL Server 2016 中部署它会引发错误
数据类型 date 和 datetime 在 add 运算符中不兼容。
但只有在单独放置查询时它才能很好地工作
select cast('2016-11-09 15:35:00' AS DATE)
select CAST('00:00:00' AS DATETIME)
Run Code Online (Sandbox Code Playgroud)
那么,我该如何解决这个问题。我发现有人说与TIME数据类型不兼容的文章,但我没有使用它。其实我的拼接是这样的
WHERE
CREATIONDATE BETWEEN CAST(@CurrentDate AS DATE) + CAST('00:00:00' AS DATETIME) AND CAST(@CurrentDate AS DATE) + CAST('23:59:59' AS DATETIME)
Run Code Online (Sandbox Code Playgroud)
where@CurrentDate是一个DateTime变量并作为'2016-11-09 15:35:00'传递给我的函数
我无法修改 SQL Server 2016 框的配置。我该如何修复我的代码?
谢谢
c# ×7
datetime ×3
linq ×3
date ×2
javascript ×2
select ×2
types ×2
.net ×1
apostrophe ×1
culture ×1
datarow ×1
datatable ×1
dictionary ×1
enumerable ×1
format ×1
formatting ×1
generics ×1
guid ×1
isodate ×1
list ×1
momentjs ×1
nullable ×1
parameters ×1
rest ×1
sql-server ×1
sqldatatypes ×1
time ×1