为什么"From"被认为是错误的?
我不得不在查询中将双引号更改为单引号,以便在从Delphi移植到C#时从IDE中编译查询字符串.
IOW,这样的SQL,适用于Delphi和Toad:
@"SELECT R.INTERLOPERABCID "ABCID",R.INTERLOPERID "CRID", . . .
Run Code Online (Sandbox Code Playgroud)
...我必须将其更改为此以便在Visual Studio中进行编译:
@"SELECT R.INTERLOPERABCID 'ABCID',R.INTERLOPERID 'CRID', . . .
Run Code Online (Sandbox Code Playgroud)
但是,SQL不会以这种方式运行 - 我得到"ORA-00923:FROM关键字未找到预期的地方"错误消息(在Toad和尝试在C#应用程序中执行SQL时).
如何编译和运行它?
我看到我可以"删除"一条不存在而不受惩罚的记录; 但这有什么隐患吗?
如果首先检查记录是否存在会更好,是否有一些超快的方法可以做到这一点?
IOW,有没有办法快速执行这个伪SQL:
if recordExists(table, rowval[s])
deleteRecord
Run Code Online (Sandbox Code Playgroud)
?
我想将在textBox中输入的值(只能为空或"1"或"2"或"3")转换为整数.如果为空,我希望它为0,否则,它是相应的值(1,2或3).
有没有办法做到这一点:
MyIntVal = TryConvertToInt(textBox1.Text, 0);
Run Code Online (Sandbox Code Playgroud)
...一个空字符串或任何不易转换为int的东西默认为0?
如果我有这个:
int[] lstAFewInts = new int[NUMBER_OF_STARS_IN_THE_MILKY_WAY];
Run Code Online (Sandbox Code Playgroud)
...我想退出一个方法,如果它没有分配给它的值,我该如何测试呢?是吗:
if (lstAFewInts[0] == null)
Run Code Online (Sandbox Code Playgroud)
...要么???
我想有条件地取消挂钩事件处理程序.这是正确的方法:
tb.TextChanged -= textBoxIntName_TextChanged;
Run Code Online (Sandbox Code Playgroud)
?
这似乎是明智的,因为它需要连接起来:
tb.TextChanged += textBoxIntName_TextChanged;
Run Code Online (Sandbox Code Playgroud)
...但似乎对应于"Delphi方式"的东西更有意义(但唉,它不能编译):
tb.TextChanged = nil;
Run Code Online (Sandbox Code Playgroud) 我依次尝试了以下所有方法:
1)//就像在遗留代码中一样
ocmd.CommandText = "SELECT TRUNC(SYSDATE,''DD'') "VALUE" FROM DUAL";
Run Code Online (Sandbox Code Playgroud)
2)//添加@
ocmd.CommandText = @"SELECT TRUNC(SYSDATE,''DD'') "VALUE" FROM DUAL";
Run Code Online (Sandbox Code Playgroud)
3)//尝试单引号
ocmd.CommandText = "SELECT TRUNC(SYSDATE,''DD'') 'VALUE' FROM DUAL";
Run Code Online (Sandbox Code Playgroud)
4)//尝试两个单引号,如DD
ocmd.CommandText = "SELECT TRUNC(SYSDATE,''DD'') ''VALUE'' FROM DUAL";
Run Code Online (Sandbox Code Playgroud)
5)//试试@
ocmd.CommandText = @"SELECT TRUNC(SYSDATE,''DD'') ''VALUE'' FROM DUAL";
Run Code Online (Sandbox Code Playgroud)
1和2给了我编译时错误:"; expected"(在"VALUE"上)
3,4和5给了我,"消息= ORA-00907:缺少右括号"
我想更换我以前的主要表格换一个新表格.
根据这个:改变主要形式
我可以转到我的项目属性并在那里设置"启动表单".但是,在VS 2010中,我在"应用程序"选项卡上看到了一组完全不同的选项和属性.例如,我没有"Starup表单",而是"启动对象"(恰好是默认设置为"(未设置)",尽管它在列表中有.Program.
那么......我怎样才能改变我的主要形式(而且,切向上,我应该将我的Startup对象设置为我的项目而不是不设置它)?
我知道,我可以事先显示这种形式显示(负载()事件,IIRC)在事件的登录表单劫持的形式,但在(也许愚蠢)试图"走捷径",创造一个快速和肮脏的登录画面,我陷入两难境地.
这是我对现有项目所做的事情(事后添加的登录表单):
1) Created the login form
2) Changed program.cs so that this login form is now the first form created
3) Added code to the login form that shows the "main" form if the login is successful. I then Hide the login form.
Run Code Online (Sandbox Code Playgroud)
这导致应用程序永远不会关闭(除了通过Shift + F5),因为隐藏的主要表单仍然潜伏着.所以,我在"main"表单的FormClosing事件中添加了一个"Close()",认为这会导致整个应用程序关闭(IOW,隐藏登录表单).
但是(也许是合适的),而不是解决我的问题,这会导致"System.Windows.Forms.dll中发生类型'System.StackOverflowException'的未处理异常"
现在我不知道我是否应该继续这种快速和肮脏的尝试(以及如何)或减少我的损失并恢复到show-the-login-form-in-the-Load事件方法[ology].
Alex M的解决方案奏效了.您需要做的唯一事情是在您的登录表单中这样的事情:
private void buttonLogin_Click(object sender, EventArgs e)
{
String userName = textBoxUserName.Text.Trim();
String pwd = textBoxPassword.Text.Trim();
if ((userName == "donMcLean") || (pwd == "Drove my Chevy to the …Run Code Online (Sandbox Code Playgroud) 我用这段代码得到了这个错误:
const string body = HighPoint; // HighPoint is a string arg passed in to the method
Run Code Online (Sandbox Code Playgroud)
...并且能够通过删除常量来解决它:
string body = HighPoint;
Run Code Online (Sandbox Code Playgroud)
......或者,当然,分配一个恒定的值:
const string body = "My Dinner with Andre";
Run Code Online (Sandbox Code Playgroud)
......但"我的方式不是一种非常运动的方式"?(无偿的公主新娘参考)
列表视图似乎像臭鼬一样脾气暴躁,并且像PC警察一样被扼杀
在其他人的帮助下,我能够按照我的意愿获得ListView(http://stackoverflow.com/questions/11423537/how-to-add-subitems-to-a-listview).
现在我正在转换这个简单的演示版,以便在真实应用中使用.
我在表单的Load事件中创建列:
listViewGroupsItems.Columns.Add(colHeadName);
listViewGroupsItems.Columns.Add(colHeadRate);
Run Code Online (Sandbox Code Playgroud)
......但他们没有显示.但是,我的第一个项目上方有一个空白行.那么为什么没有显示文本值呢?它们"在那里"但是看不见吗?他们为什么会被淘汰?
无论如何,我想看到的是:
column1Title column2Title
Group1Name
Item subitem
Item subitem
Group2Name
Item subitem
Group1Name
Item subitem
Item subitem
Item subitem
Item subitem
Run Code Online (Sandbox Code Playgroud)
......但我实际看到的只是:
[blank line]
Group1Name
Run Code Online (Sandbox Code Playgroud)
...而已!
ListView的View属性设置为Details; 否则,所有属性都是默认值.
我的listview代码是:
private void AddGroupsAndItems() {
Dictionary<string, string> GroupsDict = PlatypusData.GetGroupsForTopLevel(Convert.ToInt32(labelTopLevel.Tag));
int currentGroup = 0;
foreach (KeyValuePair<string, string> entry in GroupsDict) {
string GroupNumber = entry.Key;
string GroupName = entry.Value;
listViewGroupsItems.Groups.Add(new ListViewGroup(GroupName, HorizontalAlignment.Left));
Dictionary<string, string> ItemsDict = PlatypusData.GetItemsForGroup(GroupNumber);
foreach (KeyValuePair<string, string> itemEntry in ItemsDict) {
string itemID …Run Code Online (Sandbox Code Playgroud)