Tag: ado.net

sqlparameter性能不佳

我有一个Web服务,所以处理程序一直被多次调用。 在里面我创建了SqlConnection和SqlCommand。 我必须执行大约7个不同的命令。 不同的命令需要各种参数,所以我只需添加一次: command.Parameters.Add(new SqlParameter(“@UserID”, userID)); command.Parameters.Add(new SqlParameter(“@AppID”, appID)); command.Parameters.Add(new SqlParameter(“@SID”, SIDInt)); command.Parameters.Add(new SqlParameter(“@Day”, timestamp.Date)); command.Parameters.Add(new SqlParameter(“@TS”, timestamp)); 然后在执行期间我只需更改CommandText prorerty,然后调用ExecuteNonQuery(); 或ExecuteScalar(); 我面临性能问题。 例如,小调试和分析显示该命令 command.CommandText = “SELECT LastShowTS FROM LogForAllTime WHERE UserID = @UserID”; 平均需要大约50毫秒。 如果我将其更改为: command.CommandText = “SELECT LastShowTS FROM LogForAllTime WHERE UserID = ‘” + userID.Replace(“\'”, “”) + “‘”; 然后它只需要1ms的平均值! 我只是无法弄清楚在哪里调查问题。

我应该将什么’length’参数传递给SqlDataReader.GetBytes()

我有一个SqlDataReader,需要使用SqlDataReader.GetBytes()方法从中读取varbinary(max)列。 此方法填充字节数组,因此需要知道要读取的数据长度。 这是我感到困惑的地方。显然我想读取从这行/列中的数据库返回的所有数据,那么我应该通过什么’length’参数? 据我所知,SqlDataReader没有提供任何方法来发现可用的数据长度,因此这种方法对我来说似乎相当尴尬。 我很想在这里传递int.MaxValue而忘记这个问题,但有些事情并不适合我。 我知道我可以打电话 byte[] value = (byte[])dataReader[“columnName”]; ..而这似乎完全在内部处理长度问题。 但是,我正在使用一组围绕SqlDataReader.GetXXXX()方法构建的复杂代码生成模板。 所以我被绑在使用GetBytes并需要了解它的正确用法。

SQL Server连接字符串Asynchronous Processing = true

我正在使用.Net 2.0 + SQL Server 2005 Enterprise + VSTS 2008 + C#+ ADO.Net来开发ASP.Net Web应用程序。 我的问题是,如果我使用Asynchronous Processing=true与SQL Server身份validation模式(不是Windows身份validation模式,即在web.config中使用连接字符串中的sa帐户和密码),我想知道Asynchronous Processing=true是否会影响性能我的Web应用程序(或取决于我的ADO.Net代码实现模式/场景)? 为什么?

使用DataReader读取日期

我用数据读取器读取了这种格式的字符串。 如何使用类似格式阅读日期? while (MyReader.Read()) { TextBox1.Text = (string)MyReader[“Note”]; }

DbSet mock,第二次调用ToList时没有结果

我正在尝试模拟DbContext和DbSet。 这适用于我之前的unit testing,但是当我的代码第二次在DbSet上调用ToList方法时出现问题。 首先dbSet.ToList()返回模拟结果。 第二个返回0个元素; var queryableData = new List{ “a”, “b”, “c” }.AsQueryable(); var mockDbSet = new Mock<DbSet>(); var q = mockDbSet.As<IQueryable>(); q.Setup(m => m.Provider).Returns(queryableData.Provider); q.Setup(m => m.Expression).Returns(queryableData.Expression); q.Setup(m => m.ElementType).Returns(queryableData.ElementType); q.Setup(m => m.GetEnumerator()).Returns(queryableData.GetEnumerator()); DbSet dbset = mockDbSet.Object; IQueryable query = dbset; //RESULTS: abc var a1 = dbset.ToList(); foreach (var a in a1) Console.Write(a); […]

使用C#.Net访问SQL Server数据库的最佳方法

我是.NET的新手,并且已经了解了几种不同的查询SQL Server数据库的方法,例如ADO.NET和entity framework。 任何人都可以给我一些关于新应用程序的最佳方法的建议吗? 感谢您的任何帮助或建议。

使用ado.net通过C#将值插入SQL Server数据库

我创建了一个简单的程序来将值插入表[regist] ,但我一直收到错误 ‘)附近的语法不正确 on cmd.ExecuteNonQuery(); : private void button1_Click(object sender, EventArgs e) { SqlConnection cn = new SqlConnection(“Data Source=DELL-PC;initial catalog=AdventureWorks2008R2 ; User ID=sa;Password=sqlpass;Integrated Security=SSPI;”); SqlCommand cmd = new SqlCommand(“INSERT INTO dbo.regist (” + ” FirstName, Lastname, Username, Password, Age, Gender,Contact, ” + “) VALUES (” + ” @textBox1.Text, @textBox2.Text, @textBox3.Text, @textBox4.Text, @comboBox1.Text,@comboBox2.Text,@textBox7.Text” + “)”, cn); […]

c#中的数据透视表

我需要在.net中创建一个数据透视表。 不能使用任何第三方控制(除非它是免费的)。 我试图找到解释如何创建数据透视表(算法或步骤)的文档,但几乎所有内容都与excel有关。 有谁知道如何在c#中创建数据透视表? 谢谢

有没有办法将任务并行库(TPL)与SQLDataReader一起使用?

我喜欢TPL中Parallel.For和Parallel.ForEach扩展方法的简单性。 我想知道是否有办法利用类似的东西,甚至是稍微高级的任务。 下面是SqlDataReader的典型用法,我想知道是否可能,如果是这样,如何用TPL中的东西替换下面的while循环。 因为读者无法提供固定数量的迭代,所以不能使用For扩展方法,这样就可以处理我将收集的任务。 我希望有人可能已经解决了这个问题,然后在ADO.net上做了一些事情。 using (SqlConnection conn = new SqlConnection(“myConnString”)) using (SqlCommand comm = new SqlCommand(“myQuery”, conn)) { conn.Open(); SqlDataReader reader = comm.ExecuteReader(); if (reader.HasRows) { while (reader.Read()) { // Do something with Reader } } }

如何从ASP.NET中的数据表/数据视图中选择前n行

如何从ASP.NET中的数据表/数据视图中选择前n行? 目前我使用以下代码,传递表和行数以获取记录。 有没有更好的办法? public DataTable SelectTopDataRow(DataTable dt, int count) { DataTable dtn = dt.Clone(); for (int i = 0; i < count; i++) { dtn.ImportRow(dt.Rows[i]); } return dtn; }