我安装了完整的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?
所以我的问题是:
更新:(为了未来的MS SQL Server新手的利益)
感谢下面的答案,我设法成功安装了我需要的东西,最重要的是了解工具图片.
所以要逐一回答我的具体问题:
提示:
<local-pc-name>\SQLEXPRESS.我有一个Windows Forms(C#,SQL Server)应用程序,我开发和运行,一切都很好,除了当我尝试在我自己的开发工作站上运行Release.exe 时,它发出"发布者无法验证"警告.
(当我在Visual Studio中以Debug模式运行此应用程序时,我没有收到此警告)
我知道代码签名,但这个应用程序将只安装在一台机器上(直接由我,在客户端的机器上),所以我想也许有办法摆脱这个警告,而不必签署EXE ,类似于Microsoft从Visual Studio运行时的例外情况?
注意:仅在单台安装单机上.
这可能吗?
我安装了Visual Studio 2010,但就是这样.
我不确定还需要安装什么才能开始通过那里的许多C#(访问SQL Server).
非常感谢提示和指向逐步开发环境设置说明的链接.
我使用以下内容将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) 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)
它有效.
为什么?
下面的代码片段将输出数字“10”十次:
\n\ndelegate 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}\nRun Code Online (Sandbox Code Playgroud)\n\n这是因为(取自https://www.toptal.com/c-sharp/interview-questions#iquestion-90455):
\n\n\n\n\n“委托被添加到 for 循环中,\xe2\x80\x9creference\xe2\x80\x9d 到 i 被存储,\n 而不是值本身。因此,在我们退出循环后,\n 变量 i 已被存储设置为 10,因此当每个委托被调用时,传递给所有委托的值都是 10。”
\n
我的问题是:为什么存储对 i 的“引用”?
\n