Tag: sql server

SQL Server中的DateTime问题

我正在尝试对MS SQL Server中已设置的数据库执行INSERT,数据库服务器位于共享主机(godaddy)中。 而我想要实现的是将文章存储到数据库中,但每次我发布或获取文章的预览时服务器都会抛出我 SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.Data.SqlTypes.SqlTypeException: SqlDateTime overflow. Must be between […]

有没有办法确定存储过程中的参数是否在代码中具有默认值(因此不是必需的) – .Net?

我已经从这样发送的存储过程中拉出参数: foreach (SqlParameter param in cmd.Parameters) { if ((param.Direction == ParameterDirection.Input) || (param.Direction == ParameterDirection.InputOutput)) { jsonReturn += “{\”paramName\”:\”” + param.ParameterName + “\”, \”paramType\”:\”” + param.SqlDbType.ToString() + “\”},”; } } 我查看了SqlParameter对象,无法找到一种方法来查看它是否可以告诉我参数是否具有默认值…(虽然我的调试器表现得很奇怪,所以谁知道)。 我正在做的是为用户构建一种Stored Proc帮助器。我现在告诉他们所有属于他们选择的存储过程的参数……我真的很想知道它们是否是必需的。

如果安装了SQL Server(标准版),如何通过代码获取服务器名称

如果安装了SQL Server(标准版),如何通过代码获取服务器名称。 我们在创建连接字符串时传递服务器名称以连接SQL Server。 我们可以通过代码检索这个值吗? string sqlConnectionString = string.Format( “user id={0};password={1};server={2};Trusted_Connection=no;database=TestDB; connection timeout={3}”, dirDBinfo.UserName, dirDBinfo.Password, “ServerName”, dirDBinfo.TimeOut);

SQLCommand方法ExecuteScalar()返回什么数据类型?

在SQL Server中,ID是非空整数和标识。 当我运行以下代码时,我在最后一行得到一个InvalidCastException: SqlCommand cmd = new SqlCommand(); cmd.Connection = _conn; cmd.CommandText = @”INSERT INTO [Users] (Name, Email, Password) VALUES (@name, @email, @pass); SELECT SCOPE_IDENTITY()”; cmd.Parameters.AddWithValue(“@name”, newUser.Name); cmd.Parameters.AddWithValue(“@email”, newUser.Email); cmd.Parameters.AddWithValue(“@pass”, newUser.PasswordHash); int id = (int)cmd.ExecuteScalar(); 什么是ExecuteScalar()在这里返回? 无论它返回什么,都有一个ToString()使它看起来像一个数字,所以这个可怕的代码行工作: int id = Int32.Parse(cmd.ExecuteScalar().ToString());

将DataTable作为参数传递给存储过程

我有一个用C#创建的数据表。 DataTable dt = new DataTable(); dt.Columns.Add(“Name”, typeof(string)); dt.Columns.Add(“Age”, typeof(int)); dt.Rows.Add(“James”, 23); dt.Rows.Add(“Smith”, 40); dt.Rows.Add(“Paul”, 20); 我想将此传递给以下存储过程。 CREATE PROCEDURE SomeName(@data DATATABLE) AS BEGIN INSERT INTO SOMETABLE(Column2,Column3) VALUES(……); END 我的问题是:我们如何将这3个元组插入SQL表? 我们需要使用点运算符访问列值吗? 或者还有其他方法吗?

为什么en-dash( – )会触发非法的XML字符错误(C#/ SSMS)?

这不是关于如何克服“XML解析:…非法xml字符”错误的问题,而是关于它为什么会发生的问题? 我知道有修复( 1,2,3 ),但在选择最佳解决方案之前需要知道问题出在哪里(导致错误的原因是什么?)。 我们使用C#调用基于Java的Web服务。 从返回的强类型数据中,我们创建了一个将传递给SQL Server的XML文件。 Web服务数据使用UTF-8进行编码,因此在C#中我们创建文件,并在适当的地方指定UTF-8: var encodingType = Encoding.UTF8; // logic removed… var xdoc = new XDocument(); xdoc.Declaration = new XDeclaration(“1.0”, encodingType.WebName, “yes”); // logic removed… System.IO.File.WriteAllText(xmlFullPath, xdoc.Declaration.ToString() + xdoc.Document.ToString(), encodingType); 这将在磁盘上创建一个包含以下(缩写)数据的XML文件: 请注意,在第二条记录中, -与–不同。 我相信第二个实例是en-dash 。 如果我在Firefox / IE / VS2015中打开该XML文件。 它打开没有错误。 W3C XMLvalidation器也可以正常工作。 但是,SSMS 2012不喜欢它: declare @xml XML = ‘ ‘; […]

如何使LINQ to SQL使用在运行时修改的连接字符串?

我正在尝试在LINQ to SQL中使用连接字符串构建器(ADO.NET)时遇到一些困难。 让我告诉大家我正在做什么: app.config文件: 和forms的片段: ConnectionStringSettings settings = ConfigurationManager.ConnectionStrings[“LoremIpsum”]; if (null != settings) { string connection = settings.ConnectionString; SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(connection); // passwordTextBox being the control where joe the user actually // enters his credentials builder.Password = passwordTextBox.Text; } LINQTOSQLDataClassDataContext db = new LINQTOSQLDataClassDataContext(); // finally some rather anecdotic LINQ sentence here: […]

数据库插入错误:“字符串或二进制数据将被截断”

当我登录时,我将我的用户名存储在会话中。 我的要求是我想将我的用户名存储在我的数据库中。 这里我将它存储在username1 。 输入用户名后,我可以使用response.write()打印它,并且打印效果很好。 但是,当我将其存储在数据库中时,它会产生以下错误: ** sqlException未被用户代码处理 和cmd.ExecuteScalar()的exception; 字符串或二进制数据将被截断。 该语句已终止。** 以下是我的ado.net代码: using (SqlConnection con = new SqlConnection(“Data Source=.;database=testdb1;Integrated Security=SSPI”)) { con.Open(); // SqlCommand cmd = new SqlCommand(“delete from fileinfo where ID=” + Convert.ToInt32(Request.Params[“one”]), con); string uname = (string) Session[“fname”].ToString() + ” ” + Session[“lname”].ToString(); //Session[“fname”].ToString()+” “+Session[“lname”].ToString(); // Response.Write(uname); // uname = “sri hari”; uname […]

从select查询返回一个布尔值

我想选择布尔值: SELECT field1, field2, 1 as is_field FROM TABLE 在Visual Studio 2010中我正在做: bool b = row.Field(“is_field”); 但我得到了例外: 指定演员表无效。 如何将布尔值作为boolean而不是作为int ?

GitHub提交错误:权限被拒绝致命:无法处理路径〜/ App_Data / aspnet-MyProject.mdf

我试图使用Microsoft Visual Studio 2017中的GitHub集成提交我的ASP.Net MVC项目的更新。 我正在开发Code-First Migrations。 在我上次成功提交之后,我在Visual Studio中的程序包管理器控制台上执行了以下命令: PM> Enable-Migrations -ContextType ApplicationDbContext PM> Add-Migration AccountNumberChanges PM> Update-Database -Verbose 完成后,我尝试执行提交,但是我收到以下错误: Git failed with a fatal error. error: open(“MyProject/App_Data/aspnet-MyProject- 20171110110346.mdf”): Permission denied fatal: Unable to process path MyProject/App_Data/aspnet- MyProject-20171110110346.mdf 上面的命令已将.mdf文件添加到项目的App_Data文件夹中。