我有一个模拟键盘输入的条形码扫描仪.我用它在一个文本框中输入ISBN号,然后搜索该标题.我需要文本框方法在做任何事情之前等待10或13个字符的条目,但是我不知道如何去做.
到目前为止,我有以下内容:
private void scanBox_TextChanged(object sender, EventArgs e)
{
if (scanBox.Text.Length == 10)
{
getRecord10();
}
else if (scanBox.Text.Length == 13)
{
getRecord13();
}
else
{
MessageBox.Show("Not in directory", "Error");
}
}
Run Code Online (Sandbox Code Playgroud)
我正在考虑某种计时器实现来阻止最后一个条件,但我真正需要的是该方法等待10或13位数.条形码扫描器模拟按下的各个键,这就是它当前失败的原因.
我故意为特定场景抛出异常,但我会隐含地希望以字符串格式获取错误消息.我知道以下异常的一个重载是string message,但是如何访问该字符串?
这是相关的片段:
string errMsg;
private void Compress()
{
if (sourcePath.EndsWith(".zip"))
{
throw new FileLoadException
("File already compressed. Unzip the file and try again.");
errMsg = //I want the above string here
}
}
Run Code Online (Sandbox Code Playgroud) 首先,我必须为过去几天给出Access标签的冲击道歉.它不像MS-SQL :(
好的,我有一个小工作表,包含3,500条记录.我正在尝试将它们修剪为需要修改以适合我们的迁移应用程序的特定集合.
我开始了
SELECT tempMainTab.*
FROM tempMainTab INNER JOIN tempCritTab
ON tempMainTab.[LINK] <> tempCritTab.[LINK]
Run Code Online (Sandbox Code Playgroud)
哪个好,对吧?(对?)
但当然,没有任何东西第一次起作用:
查询无法完成.查询结果的大小大于数据库的最大大小(2GB),或者磁盘上没有足够的临时存储空间来存储查询结果.
所以,我关闭了我打开的tempCritTab的现有窗口,并再次尝试.
不:
Access无法读取表格.该表可能已损坏或可能不存在.
(或类似的规定)
所以,我尝试了Compact/Repair工具.这似乎有用......有点儿.
现在,而不是预期的1,200行,我得到7,125,920行!?
现在我刚刚尝试再次运行查询.没有骰子 - 与第一个相同的错误.
我哪里出错了?
我对收藏的概念很陌生.我有一个类object(Officer),它有几个属性,其中三个构成了官员的名字.
我还有一个单独的类对象Company,它被定位在Officer对象上方.A company包含一系列官员,因此要显示官员的姓名,我需要两者之间的某种形式的参考:
private List<Officer> officerList;
public void addOfficer(Officer off)
{
officerList.Add(off);
}
Run Code Online (Sandbox Code Playgroud)
现在,要实际将该数据返回到另一个类,我需要创建一个列表(无意义),创建大量Officer对象(效率低下)或返回一个集合.
public void getOfficerNames(out *something* names) //I want to use a collection
//here... I think
{
foreach (Officer o in officerList)
{
names = o.Title
+ o.ForeName
+ o.SurName;
}
}
Run Code Online (Sandbox Code Playgroud)
这是我所拥有的,因为我很难理解
a)如何实现集合和
b)如果这是正确的事情.
嗯,标题说明了一切.在这种情况下,回复输出"This is a".Trim有一个已知的错误吗?我唯一想到的是,它与我fnms作为一种方法实现的事实有关,虽然我没有看到它的问题?
string nStr = " This is a test"
string fnms(string nStr)
{
nStr.TrimStart(' '); //doesn't trim the whitespace...
nStr.TrimEnd(' ');
string[] tokens = (nStr ?? "").Split(' ');
string delim = "";
string reply = null;
for (int t = 0; t < tokens.Length - 1; t++)
{
reply += delim + tokens[t];
delim = " ";
}
//reply.TrimStart(' '); //It doesn't work here either, I tried.
//reply.TrimEnd(' ');
return reply;
}
Run Code Online (Sandbox Code Playgroud) c# ×4
collections ×1
database ×1
exception ×1
ms-access ×1
sql ×1
trim ×1
validation ×1
winforms ×1