Tag: sql

C#准备语句 – @符号(at / strudel符号)查询

我在C#中准备好一个语句有问题: OdbcCommand cmd = sql.CreateCommand(); cmd.CommandText = “SELECT UNIQUE_ID FROM userdetails WHERE USER_ID = ?”; cmd.Parameters.Add(“@USER_ID”, OdbcType.VarChar, 250).Value = email; (当然电子邮件包含有效的电子邮件地址,带@符号)。 此代码返回随机错误 – “连接已被禁用”{“ERROR [01000] [Microsoft] [ODBC SQL Server驱动程序] [TCP / IP套接字] ConnectionWrite(send())。错误[08S01] [Microsoft] [ODBC SQL Server驱动程序] [TCP / IP套接字]常规网络错误。请检查您的网络文档。“} 但是,如果我在没有准备好的语句的情况下运行我的代码, cmd.CommandText = “SELECT UNIQUE_ID FROM userdetails WHERE USER_ID = ‘”+email+”‘”; 一切都很完美。 也许这与我在参数化值中有@符号的事实有关? 我倾向于认为我不是第一个尝试使用电子邮件地址创建预备声明的人… 我不知道出了什么问题! […]

使用DateTime.Now插入值时SqlDateTime溢出

最近我尝试做db.SubmitChanges()时有很奇怪的错误: SqlDateTime溢出。 必须在1/1/1753 12:00:00 AM和12/31/9999 11:59:59 PM之间。 关键是,我只使用DateTime.Now在我的对象中设置属性,并在调用Response.Write(DateTime.Now.ToString()); 它显示了应该是17-04-2013 18:03:13 。 它没有发生在早期,现在function总是打破。 我完全无能为力 – 我的SQL服务器上的日期似乎没问题。 可能导致什么呢? 编辑 我不认为这会有所帮助(IMO的任何错误太简单了),但有我的function: public bool ReportLogIn(int UserID, string IP, int Succeed … ) { A_UserLoginHistory Report = new A_UserLoginHistory(); Report.IP = IP; Report.UserID = UserID; Report.Status = Succeed; Report.Date = DateTime.Now; //the only DateTime field … try { db.A_UserLoginRegistry.InsertOnSubmit(Report); db.SubmitChanges(); […]

我可以在多个查询中拆分查询或创建并行性来加速查询吗?

我有一个表avl_pool ,我有一个函数可以在地图上找到最接近该(x, y)位置的链接。 该选择的性能非常线性,该function需要~8 ms才能执行。 因此,计算此行选择1000行需要8秒。 或者,正如我在此示例中所示,20.000行需要162秒。 SELECT avl_id, x, y, azimuth, map.get_near_link(X, Y, AZIMUTH) FROM avl_db.avl_pool WHERE avl_id between 1 AND 20000 “Index Scan using avl_pool_pkey on avl_pool (cost=0.43..11524.76 rows=19143 width=28) (actual time=8.793..162805.384 rows=20000 loops=1)” ” Index Cond: ((avl_id >= 1) AND (avl_id <= 20000))" " Buffers: shared hit=19879838" "Planning time: 0.328 ms" "Execution […]

最有效的方法来测试SQL连接字符串的可用性

我有这个代码,我试图让它测试SQL字符串连接,但我不知道如何处理connection.Open = true部分connection.Open = true你能帮我解决这个问题吗? 非常感谢您的参与。 private void button1_Click(object sender, EventArgs e) { try { using (SqlConnection connection = new SqlConnection(“Data Source='” + textBox1.Text + “‘;Initial Catalog='” + textBox2.Text + “‘;User ID='” + textBox3.Text + “‘;Password='” + textBox4.Text + “‘”)) { try { connection.Open(); if (connection.Open == true) // if connection.Open was successful { MessageBox.Show(“You […]

从SQL Server到C#读取VARBINARY(MAX)

我需要从SQL Server 2008读取数据行。其中一列的类型是VARBINARY(MAX) 。 在C#中,我想使用out参数来读取它(并且给定的场景主要满足需求)。 但我需要指定参数变量大小来填充C#变量。 在这里我假设8000就够了……但谁知道: database.AddOutParameter(command, “vbCertificate”, DbType.Binary, 8000); 所以问题是: SQL Server 2008的MAX数量是多少? 这种情况可以使用out参数吗?

仅从实体对象显示DataGrid中的某些列

我试图在VS2010中创建的实体模型上使用SQL查询填充DataGrid。 public List LoadMoviesMethod() { ObjectQuery _movies = dataEntities.MovieTables; var query = from MovieTable in _movies //where MovieTable.Rating == “R” //orderby MovieTable.id select MovieTable; return query.ToList(); } 导入数据库时​​会自动生成对象MovieTable,但是当它显示在网格上时,它会显示比我想要的更多的信息(id,EntityKey和EntityState)。 试图在对象中选择某些属性我得到了字符串并返回语句抱怨。 有没有办法选择MovieTable的某些成员在datagrid上显示? 也许指定我想要显示的列? 看起来很简单,但我想我还不够好想出来!!!!

SqlDataReader读入List

我在C#中编写一个方法来从WCF服务查询SQL Server Express数据库。 我必须使用ADO.NET来执行此操作(然后使用LINQ重写它)。 该方法接受两个字符串( fname, lname ),然后从匹配记录中返回“Health Insurance NO”属性。 我想把它读成一个列表(还有其他一些要检索的属性)。 当前代码返回一个空列表。 我哪里错了? public List GetPatientInfo(string fname, string lname) { string connString = “Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Users\\xxxx\\Documents\\Visual Studio 2010\\Projects\\ADOWebApp\\ADOWebApp\\App_Data\\ADODatabase.mdf;Integrated Security=True;User Instance=True”; SqlConnection conn = new SqlConnection(connString); string sqlquery = “SELECT Patient.* FROM Patient WHERE ([First Name] = ‘”+fname+”‘) AND ([Last Name] = ‘”+lname+”‘)”; SqlCommand command = new […]

如何在Sql commandText中传递int参数

如何传递像SQL命令参数这样的整数值? 我这样想: cmd.CommandText = (“insert_questions ‘” + cmd.Parameters.AddWithValue(store_result,store_result) + “‘,'” + cmd.Parameters.AddWithValue(store_title, store_title) + “‘, ‘” + cmd.Parameters.AddWithValue(store_des, store_des) + “‘”); store_result是int,其他2个参数是字符串类型。 store_result正在给出如下错误消息。 参数1:无法从’int’转换为’string’ 在SP中,有另一个int类型变量,它将获得store_result的值。 传递int参数的正确语法是什么? 谢谢。

字符串.NET和T-SQL之间的比较差异?

在我编写的测试用例中,字符串比较似乎在SQL Server / .NET CLR之间的工作方式不同。 这个C#代码: string lesser = “SR2-A1-10-90”; string greater = “SR2-A1-100-10”; Debug.WriteLine(string.Compare(“A”,”B”)); Debug.WriteLine(string.Compare(lesser, greater)); 将输出: -1 1 这个SQL Server代码: declare @lesser varchar(20); declare @greater varchar(20); set @lesser = ‘SR2-A1-10-90’; set @greater = ‘SR2-A1-100-10’; IF @lesser < @greater SELECT 'Less Than'; ELSE SELECT 'Greater than'; 将输出: Less Than 为什么不同?

创建存储过程以添加自动增量作为其主要字段?

我试图通过C#将数据插入我的Sql-Server数据库。 我正在调用存储过程,然后希望它添加。 我不确定要做什么更改,但最终我希望它在存储过程中完成。 我的存储过程现在: CREATE PROCEDURE [dbo].[InsertTagProcdure] @TagID int, @Value nvarchar(200), @TagCount nvarchar(200) AS IF NOT EXISTS (SELECT NULL FROM Tag WHERE @TagID = @TagID) BEGIN INSERT INTO Tag (TagID,Value,TagCount) VALUES (@TagID,@Value,@TagCount) END 而我的C#代码: int TagID = int.Parse(txtTagID.Text); //This should fall away so auto increment. String Value = txtValue.Text; int TagCount = int.Parse(txtCount.Text); using (var […]