我正在考虑改变一些表,使用nvarchar(50)作为主键而不是int主键.使用密钥的int ID确实是无关数据,它是我感兴趣的字符串.会发生什么样的性能影响,或者你在哪里研究它?除了剪切和尝试之外.
我在表中有一个uniqueidentifier列,它不是键或索引.我想使用NEWSEQUENTIALID()设置默认值,但是我收到错误:
验证列的默认值时出错
但是,如果我使用NEWID()没有错误.这是怎么回事?
编辑:您可以忽略错误对话框并继续.
当你调用DbConnection.GetSchema时,你给它你感兴趣的集合的字符串名称.我无法在任何地方找到集合列表.集合列表是不可变的还是因数据库类型(orcle,sql server等)而异?
我有兴趣在一些数据库类型中获取所有集合名称的列表,例如sql server和sqlite.
我有一个ac#类库项目,它使用在系统上注册的COM dll.我现在想要将COM dll部署为并排程序集,因此我不必注册它,也不必干扰可能使用不同版本的dll的其他应用程序.
我已经使用add new item菜单将app.manifest添加到c#项目中,但我不确定下一步该做什么.在项目属性/应用程序/图标和清单中,清除了清单下拉列表.我不知道怎么过去.我添加了一个清单文件,为什么它不在下拉列表中?
我有一个适用于C++应用程序的COM DLL的清单,我想我保持原样.现在我需要知道如何为c#项目编辑app.manifest.我将首先添加一个已知良好的依赖元素.但我需要一个关于如何设置它的教程,我不认为它覆盖在任何地方.
我正在使用VS2008
我认为你可以在.net windows窗体项目的任何窗口中进行GDI +绘图,但是你推荐什么作为包含自定义绘图的最佳内置控件?我将绘制自己的xy图,文本和图像.我可以使用Panel,UserControl等.
Visual Studio 2008中的默认安装项目为您提供了一个监视器右上角带有徽标类型图像的对话框.我想要做的就是将此图像更改为新徽标.不想处理自定义对话框.有什么方法可以改变图像吗?
我有一个Windows窗体(.net 3.0)项目,由于DEP错误,该项目无法在我客户的vista计算机上运行.它在我的vista机器上运行,并在虚拟机中的vista sp1的干净版本中运行.我无法找到使我的程序DEP,数据执行保护兼容的方法.我真的无法做任何事情来结束用户机器,它只需要运行.这个最新的vista开发噩梦有什么办法吗?我的程序使用devexpress控件,sql express和.net即web浏览器控件.我已经跳出了ie控件,但无济于事.我有其他程序在同一台机器上使用devexpress和sql express,它们运行正常.我无法在用户的计算机上进行调试.
当用户单击窗口的某个部分时,我将UserControl添加到窗口的控件中.UserControl有一个关闭按钮.我可以在UserControl的按钮处理程序中执行哪些操作来销毁UserControl?似乎没有.net类似于Win32 DestroyWindow调用,并且控件没有Close()方法.到目前为止我有这个:
private void sbClose_Click(object sender, EventArgs e)
{
Parent.Controls.Remove(this);
this.Dispose();
}
Run Code Online (Sandbox Code Playgroud)
并且,如果父母需要销毁控件,那么步骤是什么?这是我到目前为止:
Controls.Remove(control);
control.Dispose();
Run Code Online (Sandbox Code Playgroud) 我在 sql server Management Studio 中遇到 newsequentialid() 学习问题。创建一个包含 uniqueidentifier 列“UniqueID”的表,并将默认值设置为 newsequentialid()。
步骤1.保存设计:
“Table_1”表 - 验证列“UniqueID”的默认值时出错。
无论如何保存它。
步骤2.查看sql:
CREATE TABLE [dbo].[Table_1](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](50) NOT NULL,
[UniqueID] [uniqueidentifier] NOT NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[Table_1] ADD CONSTRAINT [DF_Table_1_UniqueID] DEFAULT (newsequentialid()) FOR [UniqueID]
GO
Run Code Online (Sandbox Code Playgroud)
看起来很合理。
步骤 3. 添加一些行:
1 test 72b48f77-0e26-de11-acd4-001bfc39ff92
2 test2 92f0fc8f-0e26-de11-acd4-001bfc39ff92
3 test3 122aa19b-0e26-de11-acd4-001bfc39ff92
Run Code Online (Sandbox Code Playgroud)
它们看起来不太连续。??
编辑:如果插入全部一次性完成,那么唯一的 id 是连续的,我已经让它在某种程度上起作用了。在以后的插入中,sql server 似乎忘记了最后一个顺序 id,并开始一个新的序列。
在 ssms 中运行它会产生顺序向导:
insert into Table_1 (Name) values('test13a');
insert into Table_1 (Name) …
Run Code Online (Sandbox Code Playgroud) 我正在使用后台线程来通过USB初始化仪器.当我尝试打开设备时,UI挂起.我希望后台线程在设备上调用Open时暂停,但不是UI线程.我正在测试这个没有来自后台线程的UI交互.我不知道如何调试这个问题,这个问题太广泛了,但也许有人之前见过这样的事情.据我所知,ActiveX互操作没有任何问题,设备正常工作.这是一般方法:
using System;
using FancyVoltmeterLibrary;
namespace SOQuestion
{
public class MeterClass
{
private FancyVoltmeter meter;
private Thread meterThread;
public MeterClass()
{
// Create instance of ActiveX/COM object.
meter = new FancyVoltmeter();
meterThread = new Thread(UpdateMeter);
meterThread.Name = "Meter Thread";
meterThread.Priority = ThreadPriority.Normal;
meterThread.IsBackground = true;
meterThread.Start();
}
private void UpdateMeter()
{
while(true)
{
Thread.Sleep(1000);
if(!meter.IsOpen())
{
// Meter may be powered off here.
// The call to Open takes about 1 second.
// UI hangs during the call???
meter.Open();
} …
Run Code Online (Sandbox Code Playgroud) winforms ×4
sql-server ×2
.net ×1
ado.net ×1
c# ×1
dll ×1
installation ×1
manifest ×1
primary-key ×1
side-by-side ×1
windows ×1