持续更新吧
向DataSet中添加多个DataTable
// 新建一个DataSet
DataSet ds = new DataSet();
// 获取第一个DataTable中的数据
DataTable dt_info = GetUserInfo();
dt_info.TableName = "info"; // 给表重命名
ds.Tables.Add(dt_info.Copy());
// 获取第二个DataTable中的数据
DataTable dt_Perm = GetUserPerm();
dt_Perm.TableName = "perm"; // 给表重命名
ds.Tables.Add(dt_Perm.Copy());
// 得到的DataSet
return ds;
关于这个有一个链接讲的特别好,可以看一下
清空DataGridView
C# DataGridView控件绑定数据后清空数据
在清除DataGridview的数据时:
1.DataSource为NULL(DataGridView.DataSource= null;)这样会将DataGridView的列也删掉。
2.用DataGridview.Rows.Clear(); 提示“不能清除此列表”!!!!!
以上都不是想要的结果。想要满足保持原有的列,就是重新绑定之前的DataTable,然后清除DataTable中的数据,如下:
DataTable dt = (DataTable)dataGridView1.DataSource;
dt.Rows.Clear();
dataGridView1.DataSource = dt;
问题解决。
下拉框绑定数据(DataTable)
可以用其属性中的Value
、Index
等保存数据
// 下拉框绑定
DataTable dt_group = GetUserGroup();
if (dt_group.Rows.Count > 0)
{
ComboBox.DisplayMember = "Name"; // 要展示的字段
ComboBox.ValueMember = "id"; // 对应的值字段,一般为id
ComboBox.DataSource = dt_group; // 数据源
//ComboBox.SelectedIndex = -1; // 设置所选项,-1为不选中
//ComboBox.Items.Clear(); // 清空ComboBox
}
查询DataTable中的字段
DataTable中自带了Select方法
,返回值为DataRow
比如我想查询dt中name
列为guo
的那一行,用这种方法
dt.Select("name='guo'");
其中name
为字段,等号后面是要查询的值,需要用单引号括起来。
提取字符串中的数字
int num = System.Text.RegularExpressions.Regex.Replace(str, @"[^0-9]+", "");
控制台
// 控制台打印DataSet
public void PrintDataSet(DataSet ds)
{
for(int j = 0; j < ds.Tables.Count; j++)
{
Console.WriteLine("第 "+ j + " 张表 " + ds.Tables[j].TableName +" :");
for (int q = 0; q < ds.Tables[j].Rows.Count; q++)
{
for (int i = 0; i < ds.Tables[j].Columns.Count; i++)
{
Console.Write(ds.Tables[j].Rows[q][i].ToString() + " ");
}
Console.WriteLine();
}
}
}
设置TextBox只能输入数字
要达到这个效果的方法有很多,都可以亲自试一下
// 这种方法需要创建TextBox的 **KeyPress** 方法,如果不是数字会有声音提示,且不会输入到TextBox中
private void TextBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 0x20) e.KeyChar = (char)0; //禁止空格键
if ((e.KeyChar == 0x2D) && (((TextBox)sender).Text.Length == 0)) return; //处理负数
if (e.KeyChar > 0x20)
{
try
{
double.Parse(((TextBox)sender).Text + e.KeyChar.ToString());
}
catch
{
e.KeyChar = (char)0; //处理非法字符
}
}
}
或者也可以禁止输入空格
private void TextBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (" ".IndexOf(e.KeyChar) != -1)
{
e.Handled = true;
}
}
评论 (0)