我已经离开了一段时间的编程,但最近我需要它.
我使用Sql Server Compact Edition 4.0(VS2012内置)的SQL DataReader有问题.
string connstring = "Data Source=C:\\..(Path Here)..\\VacationsDB.sdf";
SqlCeConnection conn = new SqlCeConnection(connstring);
string strSQL = "SELECT * FROM Vacation WHERE VacationNo = @val";
using (SqlCeCommand cmd = new SqlCeCommand(strSQL, conn))
{
//read search value from from text field
cmd.Parameters.AddWithValue("@val", vacationno_txt.Text);
conn.Open();
SqlCeDataReader reader = cmd.ExecuteReader();
fname_txt.Text = reader.GetString(0);
mname_txt.Text = reader.GetString(1);
/*
* .. snip
*/
vacationno_txt.Text = reader.GetString(11);
conn.Close();
}
Run Code Online (Sandbox Code Playgroud)
我一直收到错误:"InvalidOperationException未处理.行/列没有数据." 并且错误指向fname_txt.Text = reader.GetString(0);
但实际上有数据,因为带有所有代码的"提交"按钮正在工作,我已经在数据库表中检查了它.
有小费吗?谢谢.
想象一下具有以下属性的对象:
class TestObject
{
public string Name { get; set; }
public Collection<TestObject> Children { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
现在以锯齿状方式初始化一些:
var person1 = new TestObject(){
Name = "Joe",
Children = new Collection<TestObject>(){ childCollection1 };
};
var person2 = new TestObject(){
Name = "Mary",
Children = new Collection<TestObject>(){ childCollection2 };
};
Run Code Online (Sandbox Code Playgroud)
乔的孩子收藏只有一层深,但玛丽的孩子有孩子,他们也有孩子.
我试图使用SelectMany没有运气.
// Works
var joe = person1.Children.SelectMany(c => c.Children).Concat(person1.Children);
// Does not work - only returns 1 level deep
var mary = person2.Children.SelectMany(c => c.Children).Concat(person2.Children);
Run Code Online (Sandbox Code Playgroud)
检索包含每个孩子的结果到未知深度的最佳方法是什么?
目前我有以下内容:
if (dataGridView1.Rows.Count == 0)
{
MessageBox.Show("EMPTY");
}
else
{
using (var soundPlayer = new SoundPlayer(@"c:\Windows\Media\chimes.wav"))
{
soundPlayer.Play(); // can also use soundPlayer.PlaySync()
}
}
Run Code Online (Sandbox Code Playgroud)
我的网格视图如下所示:

但它似乎转到了else语句并发出声音.如果gridview的行中没有数据,我需要它才能发出声音.
我刚刚发现这段代码在 VS 2010 的头文件中(至少)是合法的
class AClass; //forward declaration of AClass (incomplete type);
class UseAClass
{
public:
AClass returnAClass(); //return a copy of incomplete type - AClass ???
}
Run Code Online (Sandbox Code Playgroud)
有人可以解释我为什么要写这个吗?
我有这个if else语句,用于将文本框中的结果与上下文列表进行比较.我想知道如何使它不区分大小写?
value = textbox1.Text;
if (article.contains(value))
{
label = qwerty;
}
else
{
break;
{
Run Code Online (Sandbox Code Playgroud) 我是初学者使用lambda表达式.
我有一个经销商名单,foreach经销商我必须计算等级.
要求是将等级计算分成单独的方法.
所以我正在编写以下两种方法,但是我无法将参数传递给CalculateGrade()方法,
public IEnumerable<Dealers> GetDealerGrades(IEnumerable<Dealers> gradeData)
{
return gradeData
.GroupBy(row => new { row.Name })
.Select(g => new Dealers
{
Name = g.Key.Name,
TotalPoints = CalculateGrade(x => Convert.ToDouble(x.RecievedPoints),
y => y.MaxPoints,
z => Convert.ToDouble(z.Weightage))
})
.ToList();
}
private double CalculateGrade(double d1, int d2, double d3)
{
return ( d1 / d2 )
* d3 == 0.00 ? 1
: d3;
}
Run Code Online (Sandbox Code Playgroud)
有人可以建议如何传递参数,或者如何传递lamda表达式并计算等级?
提前谢谢了...
我需要将带有特定特殊字符列表的字符串替换为 string.Empty。
示例:123 ~Main 到 123 Main
特殊字符列表:+ - && || !( ) { } [ ] ^ " ~ * ? : \
我知道我们可以在下面这样做,我们可以有更好的方法,使用一些正则表达式。
> keyword = keyword.Replace("+", string.Empty);
> keyword = keyword.Replace("&&", string.Empty);
> keyword = keyword.Replace("||", string.Empty);
> keyword = keyword.Replace("!", string.Empty);
> keyword = keyword.Replace("(", string.Empty);
> keyword = keyword.Replace(")", string.Empty);
> keyword = keyword.Replace("{", string.Empty);
> keyword = keyword.Replace("}", string.Empty);
> keyword = keyword.Replace("[", string.Empty);
> keyword = keyword.Replace("]", string.Empty);
> keyword = keyword.Replace("^", string.Empty); …Run Code Online (Sandbox Code Playgroud) return [RACSignal create:^(id <RACSubscriber> subscriber) {
if (someError) {
[subscriber sendError:documentCreationError];
return;
}
[subscriber sendNext:nil];
[subscriber sendCompleted];
}];
Run Code Online (Sandbox Code Playgroud)
鉴于上面的示例,return;在向订户发送错误之后是否有必要,或者在此块内执行是否立即停止?
我试图找出如何增加一个起始IP地址,并将其增加一个我指定的偏移量.我试图这样做,但我做错了,因为我得到的是各地的IP,甚至不是在同一网络范围内.
我目前正在做的是接受我的起始ip和结束ip,获取地址总数,然后将总ips递增一个偏移量,然后尝试实际增加IP.
我通过偏移量递增到总ips,所以我知道增加ip的数量.(我每个偏移完成不同的任务.)无论循环增加了多少"t",我增加了多少IP.现在我已经给出了破败,我的问题似乎只是实际上增加了ips,任何人都可以在这种情况下帮助我.谢谢.
string from = txtStart.Text, to = txtEnd.Text;
uint current = from.ToUInt(), last = to.ToUInt();
ulong total = last - current;
int offset = 3; //This is an example number, it actually could be anything.
while (current <= last)
{
for (int t = 0; t < total; t += offset)
{
uint ut = Convert.ToUInt32(t);
current = current + ut;
var ip = current.ToIPAddress();
}
}
Run Code Online (Sandbox Code Playgroud)
这是我正在使用的扩展类.他们工作正常.
public static class Extensions
{
public static uint ToUInt(this string …Run Code Online (Sandbox Code Playgroud) 我有一个方法,使用以下代码:
object frm = null;
// shows the overlay loading mask
Core.ShowLoadingMask("Please wait...");
// start task
Task.Factory.StartNew(() => {
// go to server and get the data
var employee = new Data.Entities.Employee(employeeId);
// instantiate the class type (reflection)
frm = Activator.CreateInstance(type, employee );
}).ContinueWith((task) => {
// hide loading mas
Core.HideLoadingMask();
if (frm != null) this.Panel.Controls.Add(frm);
});
Run Code Online (Sandbox Code Playgroud)
那么,我如何强制ContinueWith()强制使用当前线程的代码,或者我做错了.
我需要的过程是:
任何线索?
c# ×8
.net ×2
linq ×2
winforms ×2
asp.net ×1
async-await ×1
c++ ×1
gridview ×1
objective-c ×1
regex ×1
visual-c++ ×1