小编Sin*_*tic的帖子

创建数据库查询方法

我不确定是否已被删除,但我想要做的是创建一个返回查询结果的方法,以便我可以重用连接代码.据我了解,查询返回一个对象,但我如何传回该对象?我想将查询作为字符串参数发送到方法中,并让它返回结果,以便我可以使用它们.这就是我在黑暗中刺伤的东西,它显然不起作用.这个例子是我尝试使用查询结果填充列表框; 工作表名称为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)

c# methods return object

6
推荐指数
2
解决办法
1万
查看次数

C#:有没有办法在不使用正则表达式的情况下搜索字符串中的数字?

嘿家伙,我只是想知道是否有一种方法来检查一个字符串是否包含任何数字,而不使用正则表达式.我正在考虑将它拆分成一个数组并对其进行搜索,但有些东西告诉我这是一个更简单的方法

//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)

c# string search

5
推荐指数
2
解决办法
649
查看次数

c#我可以使用streamwriter创建动态文件名吗?

我试图让程序写入一个用时间戳命名的文件.基本上,将时间戳保存到字符串值,我希望它基于该时间戳创建文件.例如"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)

c# timestamp streamwriter

5
推荐指数
1
解决办法
9813
查看次数

使用任何或所有分隔符之一逐字拆分字符串?

我可能刚刚达到了这样的程度:我过度思考它,但我想知道:有没有办法指定一个特殊字符列表,应该都被认为是分隔符,然后使用该列表分割字符串?例:

"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)

我想我也可以用""空格替换分隔符......我会在计时器启动后立即选择答案!

.net c# string split delimiter

5
推荐指数
1
解决办法
6283
查看次数

c#:如何从linq查询中设置combobox valuemember

好吧所以我有组合框,而数据源是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

c# linq datasource valuemember

5
推荐指数
1
解决办法
2万
查看次数

如何让我的数据网格随窗口增长并保持边距?

关于我的布局的一切都将随着主窗口的大小调整而流动.我面临的问题是,正如您所看到的,数据网格离开了屏幕.如果最大化窗口,数据网格将随窗口调整大小,但继续离开屏幕.如何使用它的父网格来保持其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)

c# wpf datagrid

5
推荐指数
1
解决办法
8626
查看次数

JSON序列化程序在失败的反序列化时创建一个空对象而不是null

在WebAPI中,我注意到一个不一致的问题是我们的验证实践搞得一团糟.如果您使用xml中的POST发送错误的正文/有效负载,则反序列化将失败并且您将获得空指针.如果您在JSON中发送错误的正文/有效负载,则会得到一个空对象.这是误导,我不喜欢它.有没有办法强制使用失败的json反序列化的空指针?

更新:我没有反序列化问题.我有一个行为问题似乎是DataContractSerializer和Json.net序列化程序之间的差异.当xml无法反序列化时,有效内容为空.但是,当Json无法反序列化时,似乎它正在实例化预期有效负载的默认实例.

错误的xml有效负载示例: 在此输入图像描述

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

在此输入图像描述

.net json.net asp.net-mvc-4 asp.net-web-api

5
推荐指数
1
解决办法
2272
查看次数

当页面作为部分通过ajax加载时,如何重新绑定knockout viewmodel?

我正在使用的页面有几个选项卡,每个选项卡的内容通过ajax从控制器请求部分视图加载.问题是局部视图使用knockoutjs,因此它被绑定到视图模型.在这个特定的场景中,页面首次完整地加载,因此所有绑定都可以正常工作.切换选项卡时,它会请求部分视图,并用新页面替换选项卡内容区域.当你切换回第一个标签时,它会成功加载部分,除非看起来所有的敲除绑定都已丢失,因此存在大量缺失数据.

我无法将viewmodel声明和模型绑定放在partial中,因为该点尚未加载jquery.或者似乎($未定义).

视图模型在调用局部视图的主页面上声明和绑定,而不是局部视图本身,所以我认为模型仍然可用并且绑定成功,但事实并非如此.我知道我做错了,当谈到javscript时,部分视图是非常难以理解的,所以我希望能从你们那里窃取一些洞察力.

这是基本设置: 在此输入图像描述

ajax asp.net-mvc-4 knockout.js

5
推荐指数
1
解决办法
1154
查看次数

如何从客户端证书中读取公用名?

我们的应用程序需要一个数据,它包含在客户端证书的通用名称中.目前,我正试图从HttpContext.Current.Request.ClientCertificate获取它.我怎么读出来的?可悲的是,我正在尝试对这个盲人进行编码,同时我弄清楚为什么SoapUI没有发送证书,所以除了阅读有关MSDN上的对象并探索空属性之外,我没有尝试过多,但我不确定我正在寻找什么.那么回顾一下,我需要做些什么来从这个证书中提取通用名称?TIA

.net c# client-certificates

5
推荐指数
1
解决办法
1万
查看次数

如何使用json.net反序列化派生类

我目前正从一个我不拥有的服务中找回以下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)

.net c# serialization json.net

5
推荐指数
1
解决办法
8583
查看次数