我已经从C#.Net中的多个xml文件填充了数据集。结果,我有了一个包含多个DataTables的数据集。它们全部都有两列,分别是“ ID”和“ Name”。这些数据表可以包含相同ID的行,而不是所有表。
例如:
DataTable 1
------------
ID Name1
1 S1
2 S2
4 S4
DataTable 2
------------
ID Name2
1 D1
2 D2
3 D3
Run Code Online (Sandbox Code Playgroud)
我的目标是将所有数据组合到一个数据表中,如下所示
FinalTable
-----------
ID Name1 Name2
1 S1 D1
2 S2 D2
3 D3
4 S4
Run Code Online (Sandbox Code Playgroud)
有什么办法可以做到这一点?可能正在使用关系,DataViews ...只是猜测。
提前致谢..
这是我原本认为可以随处使用的东西.我需要做一个美国所有州的下拉列表.是否有一个C#类对象已经安装了所有设置?
我想使用foreach循环在数据表中逐个更新所有列.下面的代码是我到目前为止的代码.但它似乎没有用.非常感谢您的帮助.
foreach (DataRow row in myTable.Rows)
{
Double i;
Double j = Convert.ToDouble(row["x"]);
int y = 1;
int aan = (int)row["year"];
if(y == aan)
{
i = j + 2;
}
row["x"]=i;
row.EndEdit();
myTable.AcceptChanges();
}
Run Code Online (Sandbox Code Playgroud) 如何修改以下方法以返回List <DataTable>或DataSet?我想使它通用,因此它可以从数据库返回多个结果集.
public static DataTable ExecuteStoredProcedure(ObjectContext db, string storedProcedureName, IEnumerable<SqlParameter> parameters)
{
var entityConnection = (EntityConnection) db.Connection;
var conn = entityConnection.StoreConnection;
var initialState = conn.State;
var dt = new DataTable();
try
{
if (initialState != ConnectionState.Open)
conn.Open();
using (var cmd = conn.CreateCommand())
{
cmd.CommandText = storedProcedureName;
cmd.CommandType = CommandType.StoredProcedure;
foreach (var parameter in parameters)
{
cmd.Parameters.Add(parameter);
}
using (var reader = cmd.ExecuteReader())
{
dt.Load(reader);
reader.Close();
}
}
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (initialState != …Run Code Online (Sandbox Code Playgroud) 我正在从FTP站点获取制表符分隔文件并进行夜间下载.然后我使用我的数据集将其上传到表单中.我只是将其加载到数据集中并绑定它.它有效,但......
我有两个这样的文件,最初我有一个工作,只是通过手动从文件中提取所有数据,如VB 6我做了每行的插入.我假设Visual Studio 2012中的数据表或数据集的绑定将使用一个更好的算法,我认为它可能更容易,更有效.至少相对容易.
我无法访问SQL Server的服务器文件系统,因为它是一个共享环境,并且SQL Server的BULK COPY不可用.由于我的文件大小,提供程序的批量复制方法无法按照公布的方式工作.显然,这会更有效率.我猜这是我的蓝领方式.我每晚在2个进给中远程进行大约10万行的操作.每次花费大约45分钟.
我遇到的问题是这个绑定表已被锁定,因此在进行45分钟更新时无法进行任何查询或访问.它再次起作用.是否有参数或设置,我可以调用或设置允许在此更新期间使用它.
参考代码
[WebMethod]
public static string GetData()
{
string query = "SELECT * FROM tblCountry";
SqlCommand cmd = new SqlCommand(query);
return GetData(cmd).GetXml();
}
private static DataSet GetData(SqlCommand cmd)
{
string strConnString = @"Data Source=.\sqlExpress;Initial Catalog=dbTest;Integrated Security=SSPI; pooling=false";
using (SqlConnection con = new SqlConnection(strConnString))
{
using (SqlDataAdapter sda = new SqlDataAdapter())
{
cmd.Connection = con;
sda.SelectCommand = cmd;
using (DataSet ds = new DataSet())
{
sda.Fill(ds);
return ds;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
在以下位置查看更多信息:链接
查询返回20行,我需要单独显示10行。在查询中没有任何更改的情况下,就有可能限制数据集中的数据。
我有一个必须排序的DataTable,但是即使在对DataTable排序之后,我也想返回特定的行作为最后一行。我将通过单列中的字符串值来标识此行。
public DataTable StandardReport3B(string missionId, string reportType, string startDate, string endDate)
{
List<long> missionIdList = new List<long>();
string[] missionIds = missionId.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
foreach (string mission in missionIds)
{
missionIdList.Add(Convert.ToInt64(mission));
}
DataTable dt = new DataTable();
object reportData = null;
using (var ctx = new MedicalServiceEntities())
{
reportData = ctx.GetData(startDate, endDate, missionId).ToList();
}
dt = this.GenericListToDataTable(reportData);
DataView dv = dt.DefaultView;
dv.Sort = dt.Columns[0].ColumnName + " Asc";
return dv.ToTable();
}
Run Code Online (Sandbox Code Playgroud) 我有以下数据帧:
n startdate enddate count
0 1 2014-02-01 2014-02-01 6069
1 1 2014-02-01 2014-03-01 1837
2 1 2014-02-01 2014-04-01 107
3 1 2014-02-01 2014-05-01 54
4 1 2014-03-01 2014-03-01 10742
5 1 2014-03-01 2014-04-01 2709
6 1 2014-03-01 2014-05-01 1387
7 1 2014-04-01 2014-04-01 5584
8 1 2014-04-01 2014-05-01 1103
9 1 2014-05-01 2014-05-01 2970
Run Code Online (Sandbox Code Playgroud)
是否有可能将其转换为类似于:
n startdate 2014-02-01 2014-03-01 2014-04-01 2014-05-01
0 1 2014-02-01 6069 1837 107 54
1 1 2014-03-01 0 10742 2709 1387
2 1 2014-04-01 0 …Run Code Online (Sandbox Code Playgroud) 我的数据集有3个变量:
Patient ID Outcome Duration
1 1 3
1 0 4
1 0 5
2 0 2
3 1 1
3 1 2
Run Code Online (Sandbox Code Playgroud)
我想要的是对每个患者身份证进行"持续时间"的第一次观察.
也就是说,对于患者#1,我希望持续时间读取患者#3的3,3,3我希望持续时间读取1,1.
我有一个从BLL(我的控件之外)作为DataSet返回的数据.我知道它只占用了相关表的一行,所以我这样访问它:_appData = myDataSet.Tables["TableName"].Rows[0].然后,我通过使用列名称调用该行来访问各个数据点:_appData["ColumnName"].ToString().
这适用于我的大多数数据,但我知道存在的列有一个"列不属于表"错误.这是调试模式中的错误:
正如您所看到的那样,列被称为"hadDataCompromise".这是当我打破并深入挖掘DataSet - >表 - >列时出现的列:
为了更好地衡量,我尝试使用我在实际代码中使用的完全相同的语法访问立即窗口中的列,该代码完美地工作,返回预期值:
任何线索为什么会发生这种情况?似乎没有类似的问题适用于我的问题(大多数问题涉及拼写错误或无关的引号或括号).同样,代码适用于大多数列,但在这一列上随机中断.谢谢!