小编Not*_*arp的帖子

SQL Server Management Studio是否附带Visual Studio?

我安装了完整的Visual Studio 2010(非快速),以及随附的SQL Server:

在此输入图像描述

我试图找到SQL Server Management Studio(ssms)以便遵循本教程,但我似乎无法在我的安装中找到它.

理论上我可以下载2008 Management Studio Express,但鉴于SSMS的版本和版本如此之多(例如2012 Express),我怎么知道它是否与我的VS 2010兼容?

另外,如果我已经在原始的Visual Studio 2010 DVD中使用它,为什么要下载Express Edition?

所以我的问题是:

  1. SSMS已经安装但是我没有看到它?(如果是这样,我如何找到它?)
  2. 如果没有安装,我是否只需要再次运行安装程序,然后安装它?
  3. 如果它不是真的在VS 2010 DVD上(正如SO建议的那么多),哪个可下载的Express版本与我的VS 2010(非快递)最兼容?

更新:(为了未来的MS SQL Server新手的利益)

感谢下面的答案,我设法成功安装了我需要的东西,最重要的是了解工具图片.

所以要逐一回答我的具体问题:

  1. 没有
  2. 没有
  3. SQL Server Management Studio 2008 Express

提示:

  1. 一旦安装完所有,下一个问题是"我下一步该怎么办?" .幸运的是,对于我来说,有一个很棒的教程比繁琐的(重复的,循环的,非线性的)官方Microsoft文档更清晰.
  2. 尽管functionx.com教程非常棒,但它没有提供有关如何最初连接到本地的详细信息.再一次,SO来救援并澄清必须满足另外两个条件:(a) SQL Server Browser服务必须正在运行.(b)服务器名称不得为"本地",而是<local-pc-name>\SQLEXPRESS.
  3. 要以编程方式在C#中创建数据库,也请使用ADO.NET.
  4. 为什么要使用模式.
  5. 甚至不要考虑将数据库文件存储在网络共享上.
  6. 如果在刚创建的表的SELECT语句中出现"Invalid object …

.net sql-server ssms visual-studio-2010

20
推荐指数
2
解决办法
3万
查看次数

为单个实例安装摆脱"发布者无法验证" - 可能吗?

我有一个Windows Forms(C#,SQL Server)应用程序,我开发和运行,一切都很好,除了当我尝试在我自己的开发工作站上运行Release.exe ,它发出"发布者无法验证"警告.

(当我在Visual Studio中以Debug模式运行此应用程序时,我没有收到此警告)

我知道代码签名,但这个应用程序将只安装在一台机器上(直接由我,在客户端的机器上),所以我想也许有办法摆脱这个警告,而不必签署EXE ,类似于Microsoft从Visual Studio运行时的例外情况?

注意:仅在单台安装单机上.

这可能吗?

code-signing visual-studio-2010 visual-studio winforms

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

如何设置开发环境以便在C#和SQL Server中进行开发?

我安装了Visual Studio 2010,但就是这样.

我不确定还需要安装什么才能开始通过那里的许多C#(访问SQL Server).

非常感谢提示和指向逐步开发环境设置说明的链接.

.net c# sql-server visual-studio-2010

4
推荐指数
2
解决办法
256
查看次数

如何解决KeyNotFoundException问题

我使用以下内容将JSON字符串反序列化到我自己的类中:

JavaScriptSerializer serializer = new JavaScriptSerializer();
Dictionary<string, object> x = (Dictionary<string, object>)serializer.DeserializeObject(json);
MyJsonStruct data = serializer.Deserialize<MyJsonStruct>(x["d"].ToString());
Run Code Online (Sandbox Code Playgroud)

但是一旦JavaScriptSerializer.Deserialize()调用该方法,就会抛出异常:

A first chance exception of type 'System.Collections.Generic.KeyNotFoundException' occurred in mscorlib.dll
System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
   at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
Run Code Online (Sandbox Code Playgroud)

有没有办法找出触发异常的

用于解决此类异常的一般技术(或配方)将是最受欢迎的.

更新:如果我删除[d],我收到以下内容:

A first chance exception of type 'System.ArgumentException' occurred in System.Web.Extensions.dll
System.ArgumentException: Invalid JSON primitive: System.Collections.Generic.Dictionary.
   at System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializePrimitiveObject()
   at System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal(Int32 depth)
   at System.Web.Script.Serialization.JavaScriptObjectDeserializer.BasicDeserialize(String input, Int32 depthLimit, JavaScriptSerializer serializer)
   at System.Web.Script.Serialization.JavaScriptSerializer.Deserialize(JavaScriptSerializer serializer, …
Run Code Online (Sandbox Code Playgroud)

.net c# javascriptserializer

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

SqlDataAdapter.DeleteCommand()适用于AddWithValue()但不适用于Add() - 为什么?

Microsoft自己的文档提供了删除记录的示例,如下所示:

// Create the DeleteCommand.
command = new SqlCommand(
    "DELETE FROM Customers WHERE CustomerID = @CustomerID", connection);

// Add the parameters for the DeleteCommand.
parameter = command.Parameters.Add(
    "@CustomerID", SqlDbType.NChar, 5, "CustomerID");
parameter.SourceVersion = DataRowVersion.Original;

adapter.DeleteCommand = command;
Run Code Online (Sandbox Code Playgroud)

但在我的系统上它不起作用(抱怨缺少@CustomerID).相反,如果我更换

command.Parameters.Add("@CustomerID", SqlDbType.NChar, 5, "CustomerID");
Run Code Online (Sandbox Code Playgroud)

以上

command.Parameters.AddWithValue("@CustomerID", 5);
Run Code Online (Sandbox Code Playgroud)

它有效.

为什么?

c# sql-server sqldataadapter

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

为什么存储对 int (而不是值)的“引用”?

下面的代码片段将输出数字“10”十次:

\n\n
delegate void Printer();\n\nstatic void Main()\n{\n      List<Printer> printers = new List<Printer>();\n      for (int i = 0; i < 10; i++)\n      {\n           printers.Add(delegate { Console.WriteLine(i); });\n      }\n\n      foreach (var printer in printers)\n      {\n           printer();\n      }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是因为(取自https://www.toptal.com/c-sharp/interview-questions#iquestion-90455):

\n\n
\n

“委托被添加到 for 循环中,\xe2\x80\x9creference\xe2\x80\x9d 到 i 被存储,\n 而不是值本身。因此,在我们退出循环后,\n 变量 i 已被存储设置为 10,因此当每个委托被调用时,传递给所有委托的值都是 10。”

\n
\n\n

我的问题是:为什么存储对 i 的“引用”?

\n

c# delegates

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