我正在尝试编写一个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#程序中创建用户定义的表类型?
希望我已经足够清楚了,先谢谢你.
我有一个使用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# 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 也会发生同样的情况,所有组合框选择 …
我一直在使用 morelinq 创建一个不同的对象列表。我的对象有大约 20 个属性,在最终列表中没有一个是唯一的。然而,两个属性一起使用可以揭示独特的对象:
父 ID | 儿童 ID
我看到这个问题并认为这是同样的问题所以我下载了morelinq并尝试使用:
list = list.DistinctBy(c => new { c.id, c.parentid }).ToList();
Run Code Online (Sandbox Code Playgroud)
然而,这会导致在 EITHER 属性上有一个不同的列表,而不是两者(所以我只会看到每个父母一个孩子)
使用 morelinq 实现这一目标的正确方法是什么?
另一个复杂的,我到处搜索,只能找到'如何在组合框中找到字符串'的答案
我想知道相反的情况.我有一个充满城市(字符串)的组合框,我传递了一个地址字符串.
我想搜索我的地址字符串,看它是否包含我的组合框中当前的任何一个城市.
例如.组合框包含:伦敦,巴黎,柏林
传入的地址:
我正在思考
address.Contains(combobox.Any().ToString());
Run Code Online (Sandbox Code Playgroud)
但你可能会说,这不起作用!