我不确定是否已被删除,但我想要做的是创建一个返回查询结果的方法,以便我可以重用连接代码.据我了解,查询返回一个对象,但我如何传回该对象?我想将查询作为字符串参数发送到方法中,并让它返回结果,以便我可以使用它们.这就是我在黑暗中刺伤的东西,它显然不起作用.这个例子是我尝试使用查询结果填充列表框; 工作表名称为Employees,字段/列是名称.我得到的错误是"Complex DataBinding接受IList或IListSource作为数据源.".有任何想法吗?
public Form1()
{
InitializeComponent();
openFileDialog1.ShowDialog();
openedFile = openFileDialog1.FileName;
lbxEmployeeNames.DataSource = Query("Select [name] FROM [Employees$]");
}
public object Query(string sql)
{
System.Data.OleDb.OleDbConnection MyConnection;
System.Data.OleDb.OleDbCommand myCommand = new System.Data.OleDb.OleDbCommand();
string connectionPath;
//build connection string
connectionPath = "provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + openedFile + "';Extended Properties=Excel 8.0;";
MyConnection = new System.Data.OleDb.OleDbConnection(connectionPath);
MyConnection.Open();
myCommand.Connection = MyConnection;
myCommand.CommandText = sql;
return myCommand.ExecuteNonQuery();
}
Run Code Online (Sandbox Code Playgroud) 嘿家伙,我只是想知道是否有一种方法来检查一个字符串是否包含任何数字,而不使用正则表达式.我正在考虑将它拆分成一个数组并对其进行搜索,但有些东西告诉我这是一个更简单的方法
//pseudocode
string aString = "The number 4"
If (aString contains a number) Then enter validation loop
Else return to main
//output
"The string contains a number. Are you sure you want to continue?"
Run Code Online (Sandbox Code Playgroud) 我试图让程序写入一个用时间戳命名的文件.基本上,将时间戳保存到字符串值,我希望它基于该时间戳创建文件.例如"Flight Manifest 10/14/2010 1:38:29 AM.txt"
这是正确的方法吗?
我试过这样的事情:
string timeStamp = DateTime.Now.ToString(), filePath = string.Format("Flight Manifest {0}", timeStamp);
MessageBox.Show(filePath);
StreamWriter outputFile = new StreamWriter(filePath);
Run Code Online (Sandbox Code Playgroud) 我可能刚刚达到了这样的程度:我过度思考它,但我想知道:有没有办法指定一个特殊字符列表,应该都被认为是分隔符,然后使用该列表分割字符串?例:
"battlestar.galactica-season 1"
Run Code Online (Sandbox Code Playgroud)
应该归还为
battlestar galactica season 1
Run Code Online (Sandbox Code Playgroud)
我正在考虑正则表达式,但此刻我有点心慌,盯着它看了太久.
编辑:谢谢你们确认我怀疑我是在思考它大声笑:这是我最终的结果:
//remove the delimiter
string[] tempString = fileTitle.Split(@"\/.-<>".ToCharArray());
fileTitle = "";
foreach (string part in tempString)
{
fileTitle += part + " ";
}
return fileTitle;
Run Code Online (Sandbox Code Playgroud)
我想我也可以用""空格替换分隔符......我会在计时器启动后立即选择答案!
好吧所以我有组合框,而数据源是linq查询的结果
//load QA names
var qaNames =
from a in db.LUT_Employees
where a.position == "Supervisor" && a.department == "Quality Assurance"
select new { a, Names = a.lastName + ", " + a.firstName };
cboQASupervisor.DataSource = qaNames;
cboQASupervisor.DisplayMember = "Names";
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是当我尝试添加下一行代码时
cboQASupervisor.ValueMember = "ID";
Run Code Online (Sandbox Code Playgroud)
我在运行时遇到错误,它无法转换匿名类型.我该如何解决?
更正:错误是:
无法绑定到新值成员.参数名称:value
关于我的布局的一切都将随着主窗口的大小调整而流动.我面临的问题是,正如您所看到的,数据网格离开了屏幕.如果最大化窗口,数据网格将随窗口调整大小,但继续离开屏幕.如何使用它的父网格来保持其20的边际?
<Grid>
<StackPanel Orientation="Vertical">
<TextBox Height="170" Name="txtSQL" VerticalAlignment="Top" AcceptsReturn="True" TextWrapping="Wrap" Margin="20"/>
<Button Content="Run!" Height="23" HorizontalAlignment="Left" Name="btnRun" VerticalAlignment="Top" Margin="20,0,0,0" Width="75" Click="btnRun_Click" />
<Grid>
<my:DataGrid Name="dgResults" VerticalAlignment="Top" Margin="20" />
</Grid>
</StackPanel>
</Grid>
Run Code Online (Sandbox Code Playgroud)

更新:更具体一点.我想在这里完成的效果是这样的:
当窗口首次加载时,您将看到一个空白数据网格,因此它只有大约15像素高.运行查询时,它将通过重新分配itemssource来填充数据网格.截至目前,当您这样做时,如果数据超出窗口大小,它将脱离屏幕底部.我需要它只扩展到窗口的底部然后启用滚动条.我可以通过将它包装在滚动查看器中来实现这一点.但是,在调整窗口大小时,datagrid需要使用它调整大小.
我想知道设置是否与它有关.表单实际上是一个在框架中显示的wpf页面.
更新:
<Page x:Class="Hold_Database___Prototype_1.Views.SQL"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="304" d:DesignWidth="732"
Title="SQL" xmlns:my="http://schemas.microsoft.com/wpf/2008/toolkit" AllowDrop="True">
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition Height="23" />
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBox Height="170" Name="txtSQL" VerticalAlignment="Top" AcceptsReturn="True" TextWrapping="Wrap" Margin="20" Grid.Row="0"/>
<Button Content="Run!" Height="23" HorizontalAlignment="Left" Name="btnRun" VerticalAlignment="Top"
Margin="20,0,0,0" Width="75" Grid.Row="1" Click="btnRun_Click" />
<DockPanel Grid.Row="2">
<my:DataGrid Name="dgResults" Margin="20" …Run Code Online (Sandbox Code Playgroud) 在WebAPI中,我注意到一个不一致的问题是我们的验证实践搞得一团糟.如果您使用xml中的POST发送错误的正文/有效负载,则反序列化将失败并且您将获得空指针.如果您在JSON中发送错误的正文/有效负载,则会得到一个空对象.这是误导,我不喜欢它.有没有办法强制使用失败的json反序列化的空指针?
更新:我没有反序列化问题.我有一个行为问题似乎是DataContractSerializer和Json.net序列化程序之间的差异.当xml无法反序列化时,有效内容为空.但是,当Json无法反序列化时,似乎它正在实例化预期有效负载的默认实例.
错误的xml有效负载示例:

使用错误的json有效负载进行相同调用的示例(有效负载不为空.相反,它是有效负载类的默认实例)

我正在使用的页面有几个选项卡,每个选项卡的内容通过ajax从控制器请求部分视图加载.问题是局部视图使用knockoutjs,因此它被绑定到视图模型.在这个特定的场景中,页面首次完整地加载,因此所有绑定都可以正常工作.切换选项卡时,它会请求部分视图,并用新页面替换选项卡内容区域.当你切换回第一个标签时,它会成功加载部分,除非看起来所有的敲除绑定都已丢失,因此存在大量缺失数据.
我无法将viewmodel声明和模型绑定放在partial中,因为该点尚未加载jquery.或者似乎($未定义).
视图模型在调用局部视图的主页面上声明和绑定,而不是局部视图本身,所以我认为模型仍然可用并且绑定成功,但事实并非如此.我知道我做错了,当谈到javscript时,部分视图是非常难以理解的,所以我希望能从你们那里窃取一些洞察力.
这是基本设置:

我们的应用程序需要一个数据,它包含在客户端证书的通用名称中.目前,我正试图从HttpContext.Current.Request.ClientCertificate获取它.我怎么读出来的?可悲的是,我正在尝试对这个盲人进行编码,同时我弄清楚为什么SoapUI没有发送证书,所以除了阅读有关MSDN上的对象并探索空属性之外,我没有尝试过多,但我不确定我正在寻找什么.那么回顾一下,我需要做些什么来从这个证书中提取通用名称?TIA
我目前正从一个我不拥有的服务中找回以下json:
{
"auc" : 320658953,
"item" : 31294,
"owner" : "Amacid",
"ownerRealm" : "EarthenRing",
"bid" : 289493,
"buyout" : 371150,
"quantity" : 1,
"timeLeft" : "LONG",
"rand" : 0,
"seed" : 0,
"context" : 0
}, {
"auc" : 321175921,
"item" : 82800,
"owner" : "Drakonys",
"ownerRealm" : "EarthenRing",
"bid" : 7000384,
"buyout" : 7507980,
"quantity" : 1,
"timeLeft" : "VERY_LONG",
"rand" : 0,
"seed" : 161297536,
"context" : 0,
"petSpeciesId" : 293,
"petBreedId" : 9,
"petLevel" : 1,
"petQualityId" …Run Code Online (Sandbox Code Playgroud) c# ×8
.net ×4
json.net ×2
string ×2
ajax ×1
datagrid ×1
datasource ×1
delimiter ×1
knockout.js ×1
linq ×1
methods ×1
object ×1
return ×1
search ×1
split ×1
streamwriter ×1
timestamp ×1
valuemember ×1
wpf ×1