c# 怎么把数据库某个表的内容加到dictionary字典中?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# 怎么把数据库某个表的内容加到dictionary字典中?相关的知识,希望对你有一定的参考价值。
如题,我希望把某个表加到dictionary,这样我定时判断数据就不用总是读取数据库了。直接读取dictionary,应该会效率点吧?但怎么加呢?
这样可以读取,但是这样会带来的问题是,如果数据库数据有变更,你的集合是没有办法自动同步的,需要自己手动处理添加方法:
查询得到数据表对应所有数据的集合(可以用Datatable接收),循环Datatable中的行对象,取出记录后写入到dictionary对象中就可以了追问
这个表不会修改
我主要的意思是不想循环遍历数据,用了dataset,我还要for(int i=0;i<ds.table[0].rows.count;......)
if(ds.table[0].rows[0]["string"]==1)
else
我还要写以上这种形式的循环,但是我之前的循环太多了,这样写会导致一个方法下来,会有上万次循环,不效率。就是这个意思,最主要的意思就是最好不用循环
不用循环最方便的方式就是全局变量,而且你也没有必要一定要把集合放到dictionary中的,datatable的操作也是很方便的(使用全局变量个人建议最好不要使用,因为很容易出问题),希望对你有所帮助
参考技术A 你说的东西就是普通的dataset和datatable的用途,并不是用什么字典(当然一定要用字典也不是不行),至于datatable怎么用,请找任何一个C#的基础教材。追问我主要的意思是不想循环遍历数据,用了dataset,我还要for(int i=0;i<ds.table[0].rows.count;......)
if(ds.table[0].rows[0]["string"]==1)
else
我还要写以上这种形式的循环,但是我之前的循环太多了,这样写会导致一个方法下来,会有上万次循环,不效率。就是这个意思,最主要的意思就是最好不用循环。。
不需要你循环,它本身有datatable select,支持条件查询,这是基础内容不多说了
本回答被提问者和网友采纳C#: 要把容器内的某个控件 在运行后随便拖动,该怎么做啊?
大多WinForm控件都有MouseMove,MouseDown,MouseUp.你可以就利用控件的这三个事件来实现鼠标拖动某个控件.
如:
1.新建一窗体.
2.在窗体画一个button控件.
3.在button控件的MouseMove,MouseDown,MouseUp三事件方法里分别写下这样的代码:
bool _isPressed=false;
Point _position=new Point(0,0);
private void button_MouseMove(object sender,EventArgs e)
if(_isPressed)
_position.X=e.X;
_position.Y=e.Y;
this.button.Location=_position;
private void button_MouseDown(object sender,EventArgs e)
_isPressed=true;
private void button_MouseUp(object sender,EventArgs e)
_isPressed=false;
在这里写代码可能会写错部分代码.
不过这是一种比较普通用法的思路.
希望对你有用. 参考技术A
下面演示了如何动态创建和拖动控件位置(运行时)。
调用下面代码的 〈给控件添加移动功能〉方法,就能让控件在运行时用右键拖动。
private void 给控件添加移动功能(Control 控件)
控件.MouseDown += 按钮_MouseDown;
控件.MouseUp += 按钮_MouseUp;
控件.MouseMove += 按钮_MouseMove;
private Point 鼠标位置1, 鼠标位置2, 窗体位置1, 窗体位置2;
private bool 按下鼠标 = false;
public static bool 允许拖动 = true;
private void 按钮_MouseDown(object sender, MouseEventArgs e)
if (允许拖动)
if (e.Button == MouseButtons.Right)
按下鼠标 = true;
鼠标位置1 = Control.MousePosition;
Control c = sender as Control;
窗体位置1 = c.Location;
private void 按钮_MouseMove(object sender, MouseEventArgs e)
if (允许拖动 && 按下鼠标)
鼠标位置2 = Control.MousePosition;
窗体位置2.X = 鼠标位置2.X - 鼠标位置1.X + 窗体位置1.X;
窗体位置2.Y = 鼠标位置2.Y - 鼠标位置1.Y + 窗体位置1.Y;
Control c = sender as Control;
c.Location = 窗体位置2;
窗体位置1 = 窗体位置2;
鼠标位置1 = 鼠标位置2;
坐标显示.Visible = true;
var p = this.PointToScreen(this.Location);
坐标显示.Location = new Point(c.Location.X, c.Location.Y - 坐标显示.Height);
坐标显示.BackColor = Color.LightSeaGreen;
坐标显示.Text = string.Format("0:0,1:0", c.Location.X, c.Location.Y);
private void 按钮_MouseUp(object sender, MouseEventArgs e)
if (允许拖动)
if (e.Button == MouseButtons.Right)
按下鼠标 = false;
坐标显示.Visible = false;
参考技术B 可以动态改变位置的嘛
以上是关于c# 怎么把数据库某个表的内容加到dictionary字典中?的主要内容,如果未能解决你的问题,请参考以下文章
C#怎么把list中某个元素出现n次后的内容存入另一个list
MySQL怎么把表中一个字段数据复制到另外一个表的某个字段下