C# DataTable.Dispose()存在问题
DataTable.Dispose()存在问题 你好 我有以下代码的问题,它会导致内存出现问题。 问题是,我们不知道该如何解决这个问题C# DataTable.Dispose()存在问题,c#,C#,DataTable.Dispose()存在问题 你好 我有以下代码的问题,它会导致内存出现问题。 问题是,我们不知道该如何解决这个问题 using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.IO; using System.Data; using System.Data.Sql; using Sy
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.IO;
using System.Data;
using System.Data.Sql;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using System.Threading;
using System.Text.RegularExpressions;
using System.Globalization;
using System.Net;
using System.Runtime.Remoting;
using Microsoft.SqlServer;
using Microsoft.SqlServer.Server;
namespace Mirf
{
class Program
{
static void Main(string[] args)
{
SqlConnection Lig = new SqlConnection();
DataTable DataTab = new DataTable();
string str_ligacao_bd = "Data Source=.\\SQL2005;Database=Bd;Integrated Security=SSPI";
Lig = new SqlConnection(str_ligacao_bd);
Lig.Open();
//Efectua a intrução á tabela seleccionada base de dados
SqlCommand cmd = Lig.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "SELECT * FROM Tab";
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds, "tab");
DataTab = ds.Tables["tab"];
cmd.Dispose();
da.Dispose();
ds.Dispose();
Lig.Close();
foreach (DataColumn d in DataTab.Columns)
{
string linha = d.ColumnName;
if (linha != "Tid")
{
linha = "[" + linha + "]=1";
int sum = (int)(DataTab.Compute("COUNT(TID)",linha));
}
}
}
}
}
他是
在几列中计算1的值的最佳方法是什么。在某些情况下,有必要合并两列或多列
谢谢我不确定您在这里真正想要实现什么,但看起来您真的应该使用SQL直接获取答案,而不是将整个表读入本地内存,然后在本地计算。您的表有多大?。通过从SQL获取所有数据并在.NET中进行计算,您会消耗太多内存。使用数据库,用SQL计算数据,然后在.NET中获取结果 考虑到您在另一条评论中提到数据位于文本文件中(尽管您的代码表明它位于SQL Server数据库中),我建议使用Linq来访问实体 这里有一些链接
您必须编写代码来序列化和反序列化要针对内存中C#对象构建查询的数据“行”。您好,问题是您的DataTable正在从文本文件读取,而不是直接指向SqlServer。