小编Any*_*ope的帖子

在c#中创建用户定义的表类型以在sql server存储过程中使用

我正在尝试编写一个ac#program,它创建一个整表来发送回sql server存储过程.

我遇到了msdn指南但却变得非常困惑:http: //msdn.microsoft.com/en-us/library/cc879253.aspx

我尝试使用msdn指南,但是尽管按照编译器的建议添加了对microsoft.sqlserver.smo,microsoft.sqlserver.connectioninfo,microsoft.sqlserver.management.sdk.sfc的引用,但仍然出错.错误是:"为userdefinedtabletype设置父级失败".(基于msdn指南的代码片段)

Server srv = new Server();
Database db = srv.Databases["MyDatabase"];

//fails at this line
UserDefinedTableType udtt = new UserDefinedTableType(db, "TestTable");
udtt.Columns.Add(new Column(udtt, "Col1", DataType.Int));
udtt.Create();
Run Code Online (Sandbox Code Playgroud)

我只是希望能够构建一个用户定义的数据表,我在这里找到的唯一相关问题只涉及在SQL中创建用户定义的表,而不是C#.

我的SQL Server连接代码是这样的:

 DataSet ds = new DataSet("SQLDatabase");

       using (SqlConnection conn = new SqlConnection(Settings.Default.SQLConnectionString))
       {
           SqlCommand sqlComm = new SqlCommand("StoredProcedure", conn);

           sqlComm.Parameters.AddWithValue("@param", paramValue);

           sqlComm.CommandType = CommandType.StoredProcedure;

           SqlDataAdapter da = new SqlDataAdapter();
           da.SelectCommand = sqlComm;
           da.Fill(ds);
       }
Run Code Online (Sandbox Code Playgroud)

请有人用简单的语言向我展示如何在我的C#程序中创建用户定义的表类型?

希望我已经足够清楚了,先谢谢你.

c# sql-server-2012

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

混合WPF和winforms项目DPI意识

我有一个使用winforms和WPF的C#程序,我很难让它在高DPI环境中工作.目前,如果我从解决方案中删除所有WPF项目并运行它,它将可以很好地扩展,但是一旦我添加任何wpf(功能必需),扩展失败并且UI变得不可用.

这似乎与之前的SO问题完全相同:混合WinForms和WPF应用程序中的.Net 3.5中的DPI缩放以及使用DPI正确扩展WinForms的问题

我按照有关这些问题的建议,尝试添加清单文件和提供的dpi识别代码.

我还将项目升级到.net framework 4.6.1(从4.0开始)并包含了app.config设置: <add key="EnableWindowsFormsHighDpiAutoResizing" value="true" />

这确实影响了程序的主shell(因此,不是在一个小窗口中加载所有控件被压缩,主程序窗口打开最大化并显示正常)但是,当我从主窗口输入任何winforms子窗体或插件时,缩放失败.

当我输入任何WPF子窗体或插件,或返回到主屏幕时,这些渲染正确.只有winforms功能无法正确扩展.

有没有人对如何让混合winforms/WPF项目在高DPI中正确扩展有任何想法?

提前致谢

c# wpf highdpi winforms .net-4.6

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

C# 数据绑定 ComboBox 更改其他控件中的数据

我再次遇到一个非常复杂的问题,所以我会尽力解释:

我有一个 C# Windows 窗体 (.NET 4) 程序。我的 Windows 窗体包含一个大的空白面板。
在这个程序中,我有一个带有设计器的 Windows 窗体 UserControl 类。用户控件是一个带有两个组合框和一个文本框的框(称之为菜单选项)。

用户控件上的每个组合框都使用以下方式绑定到不同的数据源:

comboBoxSelection1.DataSource = SelectionList1;
comboBoxSelection2.DataSource = SelectionList2;
Run Code Online (Sandbox Code Playgroud)

当用户使用组合框选择一个项目时,文本框会显示他们的选择。
例如,选择 1:牛排,选择 2:薯条。

该程序的全部要点是允许用户创建多个用户控件(菜单选项),每个控件具有不同的选择,从而产生一个选择列表(成为一个订单)。

到目前为止和我在一起吗?
在我开始使用 ComboBox 的 DataSource 之前,这工作得非常好,如下所示:

object[] comboBoxList1 = new object[SelectionList1.Count];
int i = 0;
foreach (Selection s in SelectionList1)
{
    string description = s.Description;
    comboBoxList1[i] = description;
    i++;
}
comboBoxSelection1.Items.AddRange(comboBoxList1);
Run Code Online (Sandbox Code Playgroud)

但是,我需要使用数据源来按 id 区分项目(某些显示的名称是相同的 - 我无法更改它)。

我现在使用以下内容:

comboBoxSelection1.DataSource = SelectionList1;
comboBoxSelection1.ValueMember = "Code";
comboBoxSelection1.DisplayMember = "Name";
Run Code Online (Sandbox Code Playgroud)

问题是,每当我更改其中一个用户控件上的comboBoxSelection1 时,面板上每个用户控件上的comboBoxSelection1 值都会更改为我当前的选择。如果我更改任何组合框选择 2 中的值,则组合框选择 2 也会发生同样的情况,所有组合框选择 …

.net c# combobox datasource winforms

3
推荐指数
1
解决办法
2750
查看次数

morelinq 由多个属性区分

我一直在使用 morelinq 创建一个不同的对象列表。我的对象有大约 20 个属性,在最终列表中没有一个是唯一的。然而,两个属性一起使用可以揭示独特的对象:

父 ID | 儿童 ID

  • 1 | 1
  • 1 | 2
  • 2 | 1
  • 2 | 2
  • 2 | 3

我看到这个问题并认为这是同样的问题所以我下载了morelinq并尝试使用:

list = list.DistinctBy(c => new { c.id, c.parentid }).ToList();
Run Code Online (Sandbox Code Playgroud)

然而,这会导致在 EITHER 属性上有一个不同的列表,而不是两者(所以我只会看到每个父母一个孩子)

使用 morelinq 实现这一目标的正确方法是什么?

c# linq distinct-values morelinq visual-studio-2013

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

string.contains来自combobox的项目

另一个复杂的,我到处搜索,只能找到'如何在组合框中找到字符串'的答案

我想知道相反的情况.我有一个充满城市(字符串)的组合框,我传递了一个地址字符串.

我想搜索我的地址字符串,看它是否包含我的组合框中当前的任何一个城市.

例如.组合框包含:伦敦,巴黎,柏林

传入的地址:

  • 123,街道,城镇,伦敦,邮编(真)
  • 123,街道,城镇,罗马,邮编(假)

我正在思考

address.Contains(combobox.Any().ToString());
Run Code Online (Sandbox Code Playgroud)

但你可能会说,这不起作用!

c# search combobox winforms

0
推荐指数
1
解决办法
1089
查看次数