我正在用C#构建一些SQL查询.它将根据代码中存储为变量的某些条件而有所不同.
string Query="SELECT * FROM Table1 WHERE 1=1 ";
if (condition1)
Query += "AND Col1=0 ";
if (condition2)
Query += "AND Col2=1 ";
if (condition3)
Query += "AND Col3=2 ";
Run Code Online (Sandbox Code Playgroud)
它有效,但测试1 = 1似乎并不优雅.如果我没有使用它,我必须记住并检查每次是否已经添加"where"关键字到查询.
有更好的解决方案吗?
我想在我的表单上的所有文本框中添加一个事件:
foreach (Control C in this.Controls)
{
if (C.GetType() == typeof(System.Windows.Forms.TextBox))
{
C.TextChanged += new EventHandler(C_TextChanged);
}
}
Run Code Online (Sandbox Code Playgroud)
问题是它们存储在几个组框中,而我的循环看不到它们.我可以单独循环遍历每个组框的控件,但是可以在一个循环中以简单的方式完成所有操作吗?
请原谅我一个初学者的问题:)
string S="abc";
S+="\";
Run Code Online (Sandbox Code Playgroud)
不会卷曲.
string S="abc";
S+="\\";
Run Code Online (Sandbox Code Playgroud)
会使S ="abc \\"
我怎样才能使S ="abc"?
请原谅我,如果它之前已被回答,但我在网上搜索,发现只有绝望的人问我的问题,但没有人给出我可以使用的任何答案.
我正在使用Crystal Reports在C#Visual Studio 2010中开发一个应用程序.我正在开发32位系统.一切正常.
现在我试图在另一台64位系统的计算机上运行它,安装了Crystal Reports并发生了一些可怕的错误.
************** Tekst wyj?tku **************
System.TypeInitializationException: Inicjator typów zg?osi? wyj?tek dla typu
'CrystalDecisions.ReportSource.ReportSourceFactory'. ---> System.TypeInitializationException:
Inicjator typów zg?osi? wyj?tek dla typu 'CrystalDecisions.Shared.SharedUtils'. --->
System.IO.FileLoadException: Nie mo?na za?adowa? pliku lub zestawu
'log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=692fbea5521e1304' lub jednej z jego zale?no?ci.
Run Code Online (Sandbox Code Playgroud)
在那里请原谅我一些波兰语.它基本上意味着它找不到某些特定版本的log4net.dll文件,这显然必须被某些东西使用.
许多地方都描述了这个问题:
http://scn.sap.com/thread/1857957
据我所知,我的应用程序使用/期望此文件的某些版本和64位计算机上安装的Crystal Reports使用另一个版本.
浏览互联网后,我不知道应该采取什么措施来纠正它.
我真的很感激一些"傻瓜教程"如何处理它.
哦,我的应用程序需要构建为32位并在64位上运行.不可能将它构建为64位,另一件事会停止工作:(
我有以下代码用于从C#应用程序创建一些数据库
SqlConnection myConnection = new SqlConnection(ConnectionString);
string myQuery = "CREATE DATABASE " + tbxDatabase.Text; //read from textbox
myConnection.Open();
SqlCommand myCommand = new SqlCommand(myQuery, myConnection);
myCommand.ExecuteNonQuery();
Run Code Online (Sandbox Code Playgroud)
现在我担心它是否安全,C#会接受黑客输入,如"A; DROP TABLE B"或类似的东西吗?如何让它更安全?
我在sql server上有一组数据,如:
ID ID_Invoice Article Quantity Status
1 10 carrot 10 null
2 10 carrot 5 C
3 10 onion 8 null
4 10 onion 4 C
5 11 tomato 20 null
6 11 tomato 18 C
7 11 onion 2 null
8 11 onion 1 C
Run Code Online (Sandbox Code Playgroud)
这意味着客户订购了10个胡萝卜和8个洋葱(在一张发票上)但实际上只收到了5个胡萝卜和4个洋葱.如果status为null则为原始数量,如果status为C则为校正数量
我需要生成一个像这样的表
ID ID_Invoice Article Quantity
1 10 carrot -5
2 10 onion -4
3 11 tomato -2
4 11 onion -1
Run Code Online (Sandbox Code Playgroud)
显示每张发票上的订购数量和实际数量之间的差异.我不知道如何开始.任何帮助深深感激:)
一个基本问题:
我有一个C#Windows应用程序,通过键入从其自己的目录执行时运行正常
program1.exe
Run Code Online (Sandbox Code Playgroud)
但是当我从另一个目录执行它时给出了完整的路径
d:/progs/myprog/program1.exe
Run Code Online (Sandbox Code Playgroud)
它崩溃了.我真的需要这样做:)
我想这与程序中读取一些文件有关,这些文件位于同一目录中.我怀疑的是:
using (XmlReader OdczytywaczXML = XmlReader.Create(@"config.xml"))
Run Code Online (Sandbox Code Playgroud)
这可能是问题吗?我不想提供文件的完整路径,因为我希望我的程序只需复制文件即可在任何地方工作.
哦,我不知道如何在调试时模拟这种情况(从另一个目录运行) - 是否可能?
我的表中有两列,一列包含数字,另一列应该有一些从这些数字生成的字符串,如:
ID Serial
1 SN00001
2 SN00002
127 SN00127
Run Code Online (Sandbox Code Playgroud)
但是我无法确定每个序列号是否正确.所以我想用以下方法搜索任何可能的错误:
SELECT * FROM MyTable WHERE ID <> Serial
Run Code Online (Sandbox Code Playgroud)
当然我不能写ID <> Serial,我想我应该使用一些子串选择,类型转换等等但它对我来说都是新的,我可以使用一些帮助.提前致谢!
我正在使用Microsoft SQL Server(2008 R2,如果这很重要)
当我执行
select LEN('test')
Run Code Online (Sandbox Code Playgroud)
我按预期得到4分
但现在试试这个:
declare @s varchar
set @s='test'
select LEN(@s)
Run Code Online (Sandbox Code Playgroud)
结果是...... 1
它是如何实际工作的?
我在C#应用程序中有一个Listview控件,其中包含一些名称和复选框,用于选择一个或多个值.除了单击复选框,用户还可以单击名称,它将变为蓝色.我希望保留此功能,因为单击名称会显示更多数据,然后单击复选框标记它以进行进一步处理
我相信点击复选框更改Item.Checked属性并单击名称Changes Item.Selected但似乎没那么简单.
我有一个计算已检查项目的代码:
private void Listview1_ItemChecked(object sender, ItemCheckedEventArgs e)
{
foreach(ListViewItem Item in ListView1.Items)
{
if (Item != null)
{
if (Item.Checked == true) N++;
}
}
Textbox1.Text = N.ToString();
}
Run Code Online (Sandbox Code Playgroud)
当用户单击复选框时,显示正确的数字,但是当他点击名称时,即使检查了更多复选框,选中的数字也会更改为1,这显然是错误的.此外,当窗体和控件加载时,即使没有选中复选框,我也会得到N = 1.
我究竟做错了什么?
编辑:感谢您的快速回复和有用的提示!
而我刚刚发现我的问题是我的疏忽,因为我忘了删除旧代码!:)起初我使用多个选择来拾取项目,然后我切换到复选框但仍然调用SelectionChanged事件并修改文本框内容