标签: dataset

如何将"Pair"或n-size插入列表集合而不是编写HashMaps?

所以,我有一种情况需要将三个值传递给一个串行的BlockingQueue队列:

(SelectableChannel, ComponentSocketBasis, Integer).
Run Code Online (Sandbox Code Playgroud)

它们实际上根本不需要进行哈希映射,并且使用HashMap是荒谬的,因为每个条目总是只有一个键; 如果他们只是在某种有序的集合中,那就好了.但是,由于缺少已知的替代方法,我在我的实现中使用了HashMap并生成了这个混淆的泛型组合:

private LinkedBlockingQueue<HashMap<HashMap<SelectableChannel, ComponentSocketBasis>, Integer>> deferredPollQueue = new LinkedBlockingQueue<HashMap<HashMap<SelectableChannel, ComponentSocketBasis>, Integer>>();
Run Code Online (Sandbox Code Playgroud)

这看起来真的很荒谬.我必须是一个可怕的n00b.当然有一种更好的方法可以做到这一点,不需要我在检索值时分解密钥或浪费(理论上 - 实际上,Java总是臃肿:)算法复杂性对无用的哈希计算我不需要因为我的密钥空间为1,甚至不想关联映射三个引用,而只是将它们分组?有了这个实现,我必须这样取出值:

while(deferredPollQueue.size() > 0) {
    System.out.println("*** Draining new socket channel from queue");
    HashMap<HashMap<SelectableChannel, ComponentSocketBasis>, Integer> p = deferredPollQueue.take();

    SelectableChannel chan = null;
    ComponentSocketBasis sock = null;
    int ops = 0;

    HashMap<SelectableChannel, ComponentSocketBasis> q = p.keySet().iterator().next();

    chan = q.keySet().iterator().next();
    sock = q.get(chan);

    ops = p.get(q).intValue();

    SelectionKey k = chan.register(selector, ops);  

    if(!channelSupervisorMap.containsKey(k))
        channelSupervisorMap.put(k, sock);
}
Run Code Online (Sandbox Code Playgroud)

我很确定每一个有能力的人都认为这是一种荒谬的方式,所以问题是 - 什么是正确的方法?:)我无法在任何地方找到java.util.Pair或java.util.Triplet的证据.

我认为Orthodox Way(TM)只是为了容纳这个三元组而做一个自定义类或接口,但是对于这么大的系统中的这么小的任务来说,这似乎是荒谬的冗长和不必要的 - 尽管如此,那是Java本身.

出于同样的原因,也许这些值可以放在ArrayList或Vector或它们的衍生物上,但是在Java中,这并没有比我从这个HashMap中获得更简洁的解决方法,尽管它确实解决了也许是算法复杂性问题.

回到Perl …

java queue collections map dataset

0
推荐指数
1
解决办法
1062
查看次数

C#中的DataSet帮助

我在c#中连接了一个sql数据库,现在尝试将内容放入数据集中.我怎么能这样做?

我的代码是:

string constr = "Data Source=ECEE;Initial Catalog=Internet_Bankaciligi;User ID=sa";

        SqlConnection conn = new SqlConnection(constr);

        SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter("Select * from Internet_Bankaciligi", conn);
        DataSet myDataSet = new DataSet();
        DataRow myDataRow;


        SqlCommandBuilder mySqlCommandBuilder = new SqlCommandBuilder(mySqlDataAdapter);


        mySqlDataAdapter.MissingSchemaAction = MissingSchemaAction.AddWithKey;

        mySqlDataAdapter.Fill(myDataSet,"Internet_Bankaciligi");

        myDataRow = myDataSet.Tables["IB_Account"].NewRow();
        myDataRow["Account_ID"] = "NewID";
        myDataRow["Branch_ID"] = "New Branch";
        myDataRow["Amount"] = "New Amount";

        myDataSet.Tables["Customers"].Rows.Add(myDataRow);
Run Code Online (Sandbox Code Playgroud)

这一行:"mySqlDataAdapter.Fill(myDataSet,"Internet_Bankaciligi");" 将错误标记为"无效的对象名称"Internet_Bankaciligi'.' 但Internet_Bankaciligi是我的数据库名称.

如果我使用:

SqlCommand selectCMD = new SqlCommand("select (*) from IB_Account", conn);

        SqlDataAdapter myAdapter = new SqlDataAdapter();
        myAdapter.SelectCommand = selectCMD;

        myAdapter.Fill(myDataSet);
Run Code Online (Sandbox Code Playgroud)

然后:"SqlCommand selectCMD = new …

c# database datarow dataset

0
推荐指数
1
解决办法
530
查看次数

C#:通过DataSet将XML绑定到ComboBox

我试图让这段代码工作大约2个小时=(我是C#的新手,并不知道所有的.NET库类.

目标是将XML数据填充到comboBox

DataSet dataSet = new DataSet();
DataTable dataTable = new DataTable("table1");
dataTable.Columns.Add("col1", typeof(string));
dataSet.Tables.Add(dataTable);

StringReader strR = new StringReader("<root><parm1>val1</parm1><parm2>val2</parm2></root>");

dataSet.ReadXml(strR);

comboBox1.DataSource = dataSet.Tables[0];
comboBox1.DisplayMember = "col1";
comboBox1.ValueMember = "col1";
Run Code Online (Sandbox Code Playgroud)

好吧,它没有按预期工作.ComboBox应显示val1 val2

我真的不明白DataSet中DataTable的列名如何与XML-Tags相关......也许这就是重点?

先感谢您!

c# xml dataset

0
推荐指数
1
解决办法
5823
查看次数

为什么我要远离DataSet,有哪些替代方案?

我在这里找到了一个有趣的讨论

http://www.linkedin.com/groupAnswers?viewQuestionAndAnswers=&gid=43315&discussionID=12708606&goback=.anh_43315

引用:

DataSet是用于编码数据层的业余解决方案......停止使用它们并学习代码!:)

您对DataSet的看法是什么?只是简化自定义类并与之合作?还有什么其他选择?

c# asp.net dataset

0
推荐指数
1
解决办法
659
查看次数

如何在winforms中绑定数据后在datagridview中手动设置每列的索引?

用于添加动态数据的代码

getdata()  
{  
SqlConnection con = new SqlConnection("Data source=XXXXX;Initial catalog=dummy;integrated security=true");  
            DataTable dt = new DataTable();  
            DataColumn col = new DataColumn("Title", typeof(System.String));  
            dt.Columns.Add(col);  
            DataRow row = dt.NewRow();  
            con.Open();  
            SqlCommand cmd = new SqlCommand("select  Title,Description from systemtray", con);  
            SqlDataReader dr;  
            dr = cmd.ExecuteReader();  
            while (dr.Read())  
            {  
              string s=dr["Title"].ToString()+Environment.NewLine+dr["Description"].ToString();    

                row["Title"]= s.Trim();  

                dt.Rows.Add(row["Title"]);  
            }  
            dataGridView1.DataSource = dt; 
}
Run Code Online (Sandbox Code Playgroud)

然后我使用properties为datagrid添加了两个按钮.输出是:两个按钮显示在索引[0],[1],数据显示在最后一列,我需要显示索引[0]位置的数据然后两个按钮.我可以手动设置索引.

c# indexing datagridview dataset winforms

0
推荐指数
1
解决办法
2万
查看次数

为什么输出xml文件为空?

我试图通过从数据集中提取数据来输出XML文件.但是,xml文件始终为空.你能帮我找一下代码中的错误吗?

class Program
{
    static void Main(string[] args)
    {
        string umail = "";
        XDocument loaded = XDocument.Load(@"C:\1.xml");

        var q = from c in loaded.Descendants("AdminUserDB.dbo.U_User")
                select (string)c.Element("URI");

        foreach (string em in q)
            umail = em;

        SqlConnection cn = new SqlConnection("server=(local);database=AdminUserDB;Persist Security Info=True; uid=sa;pwd=P@swrd123");
        cn.Open();

        DataSet ds = new DataSet();

        SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM dbo.U_User WHERE URI=@umail", cn);

        da.SelectCommand.Parameters.AddWithValue("@umail", umail);

        da.Fill(ds);

        string filename = "output.xml";

        System.IO.FileStream myFileStream = new System.IO.FileStream(filename, System.IO.FileMode.Create);

        System.Xml.XmlTextWriter myXmlWriter = new System.Xml.XmlTextWriter(myFileStream, System.Text.Encoding.Unicode);

        ds.WriteXml(myXmlWriter);

        myXmlWriter.Close(); …
Run Code Online (Sandbox Code Playgroud)

c# xml dataset

0
推荐指数
1
解决办法
1993
查看次数

代码运行时从头开始创建数组

我试图通过这样的数组创建一个列表:

private Application[] GetApps()
{
DataSet ds = new Dataset();
string query = "query";
ds = GetData(query);

var appList = new Application[ds.Tables[0].Rows.Count];

for(var i = 0; i <= ds.Tables[0].Rows.Count - 1; i++)
{
                DataRow item = ds.Tables[0].Rows[i];

                appList[i].Name = item["Name"].ToString();
                appList[i].Confidentiality = int.Parse(item["Conf"].ToString());
                appList[i].Id = item["ID"].ToString();
}
return appList;
}
Run Code Online (Sandbox Code Playgroud)

我一直得到一个对象null错误,我知道我必须遗漏一些完全明显的东西,我只是没有看到.我是否需要以其他方式声明新数组?

c# asp.net arrays dataset

0
推荐指数
1
解决办法
207
查看次数

使用动态列数聚合数据表

我有一个带有动态列列的数据表,并希望聚合基于数字的列并将最终行保存到新的数据表中.

DataTable示例: -

PartnerName   CreditCol  DebitCol  AmountCol ....
P1              10       20        30 
P2              1        2         3 
P3              3        1         10
P2              1        100       200
Run Code Online (Sandbox Code Playgroud)

所需的输出应为: -

PartnerName   CreditCol  DebitCol  AmountCol ....
P1              10       20        30 
P2              2        102       203 
P3              3        1         10
Run Code Online (Sandbox Code Playgroud)

这里的主要内容是列集,并且是动态的.有时,可能有两列,有时可能是20列.请建议linq查询或任何其他解决方案.

c# dataset linq-to-dataset

0
推荐指数
1
解决办法
3049
查看次数

使用现有变量在SAS数据集中动态创建新变量

我有一个SAS数据集:

+-------+-------+-------+-------+
| var_1 | var_2 | var_3 | index |
+-------+-------+-------+-------+
|     1 |    10 |   100 |     2 |
|     2 |    20 |   200 |     1 |
|     3 |    30 |   300 |     3 |
+-------+-------+-------+-------+
Run Code Online (Sandbox Code Playgroud)

现在,我想在同一个数据集中创建一个新变量,每个行的值来自var_1,var_2和var_3之一,使用索引变量中的相应条目.

也就是说,如果我的输出变量是var_out,那么数据集将如下所示:

+-------+-------+-------+-------+---------+
| var_1 | var_2 | var_3 | index | var_out |
+-------+-------+-------+-------+---------+
|     1 |    10 |   100 |     2 |      10 |
|     2 |    20 |   200 |     1 |       2 |
|     3 | …
Run Code Online (Sandbox Code Playgroud)

variables macros sas dataset datastep

0
推荐指数
1
解决办法
585
查看次数

如何逐步整理此数据集?

我是一名数据分析初学者,目前正在学习如何在DataCamp中使用R。我希望整理一个可以在R Studio中找到的名为irsi的数据集。我想知道如何逐步清除此数据集,如下所示:

原版的:

head(iris)
   Species     Sepal.Length Sepal.Width  Petal.Length Petal.Width
1  setosa          5.1         3.5          1.4         0.2
2  setosa          4.9         3.0          1.4         0.2
3  setosa          4.7         3.2          1.3         0.2
4  setosa          4.6         3.1          1.5         0.2
5  setosa          5.0         3.6          1.4         0.2
6  setosa          5.4         3.9          1.7         0.4
Run Code Online (Sandbox Code Playgroud)

步骤1:

> head(iris.wide)
  Species Part   Length Width
1  setosa Petal    1.4   0.2
2  setosa Petal    1.4   0.2
3  setosa Petal    1.3   0.2
4  setosa Petal    1.5   0.2
5  setosa Petal    1.4   0.2
6  setosa Petal …
Run Code Online (Sandbox Code Playgroud)

r dataset tidyr

0
推荐指数
1
解决办法
157
查看次数