C# 从数据库中删除,插入,修改 索引选中条目
一。删除
1.
while (usrListView.SelectedIndex != -)
{
var currentSelectIndex = usrListView.SelectedIndex;
var item = usrView[currentSelectIndex];
using (StockManageDataContext smDataContext = new StockManageDataContext())
{
try
{
smDataContext.ExecuteCommand("DELETE FROM USERS WHERE ID={0}", item.ID);
usrView.RemoveAt(currentSelectIndex);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
2.
private void MenuItemDelete_Click(object sender, RoutedEventArgs e)
{ if (AddressList.SelectedIndex == -)
{
MessageBox.Show("请选择一项!");
return;
}
if (MessageBox.Show("确认删除所选定的供应商信息?", "提示", MessageBoxButton.OKCancel) == MessageBoxResult.OK)
{
while (AddressList.SelectedIndex != -){
var currentSelectIndex = AddressList.SelectedIndex;
SHDZ selectedAddress = (SHDZ)AddressList.SelectedValue;
using (WJKCDataContext wjkc = new WJKCDataContext())
{
try
{
wjkc.ExecuteCommand("DELETE FROM SHDZ WHERE CODE={0}", selectedAddress.CODE);
addressView.RemoveAt(currentSelectIndex);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
return;
}
}
}
}
3.
var item = smDataContext.Suppliers.SingleOrDefault(c => c.ID == (int)hl.Tag);
if (item != null)
{
try2016-04-04
{
smDataContext.Suppliers.DeleteOnSubmit(item);
smDataContext.SubmitChanges();
MessageBox.Show("删除成功!");
GetSupplierData();
}
catch (Exception ex)
{
MessageBox.Show("删除时发生错误!错误信息:"+ex.Message);
}
}
smDataContext.Dispose();
}
二。插入
1.
try
{
using (StockManageDataContext smDataContext = new StockManageDataContext())
{
smDataContext.Users.InsertOnSubmit(new User { UserName = usrName.Text, Password = pwd, Permission = permissionLevel });
smDataContext.SubmitChanges();
MessageBox.Show("添加用户改成功!");
usrView.Clear();
GetData();
usrName.IsEnabled = false;
PasswordBox1.IsEnabled = false;
PasswordBox2.IsEnabled = false;
PermimissionLevels.IsEnabled = false;
button1.IsEnabled = false;
usrName.Text = string.Empty;
PasswordBox1.Password = string.Empty;
PasswordBox2.Password = string.Empty;
PermimissionLevels.SelectedIndex = ;
}
}
2.
try
{
wjkc.ExecuteCommand(" insert into SHDZ (CODE,DZ,DETAIL,ISTY) values({0},{1},{2},{3})",
Code, txtAName.Text.Trim(), txtADetails.Text.Trim(), address.ISTY);
lableMsg.Content = "信息添加成功!";
lableMsg.Foreground = new SolidColorBrush(Color.FromRgb(, , ));
ClearControls();
winParent.Close();
// AddressInfoWindow win = new AddressInfoWindow();
// win.Show(); }
三 编辑
1.
确保 编辑的对象是所选对象,所以传入参数要注意,并且编辑时要先填充控件。
try
{ wjkc.ExecuteCommand("update SHDZ set DETAIL={0},DZ={1},ISTY={2} where CODE={3};"
, txtADetails.Text.Trim(), txtAName.Text.Trim(),address.ISTY,address.CODE);
lblMsg.Content = "信息修改成功!";
lblMsg.Foreground = new SolidColorBrush(Color.FromRgb(, , ));
// this.Window_Closed();
this.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
2,。
try
{
using (StockManageDataContext smDataContext = new StockManageDataContext())
{
string usrname = (this.Parent as LoginWindow).User;
var s = smDataContext.Users.Single(c => c.UserName == usrname);
s.Password = pwd;
smDataContext.SubmitChanges();
MessageBox.Show("密码添加成功!");
this.NavigationService.Navigate(new Uri("LoginPage.xaml", UriKind.Relative));
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
label_warning.Content = "提示:密码修改失败!";
}
四,根据Index的值 来判断要编辑item还是要新增item。
此步是获得index,前提是父窗口或者子窗口已经传入一个带参。
public int Index { get; set; }
public SupplierAM(int index)
{
Index = index;
InitializeComponent();
if (Index > )
{
header.Content = "修改供应商信息";
StockManageDataContext smDataContext = new StockManageDataContext();
var item = smDataContext.Suppliers.SingleOrDefault(c => c.ID == Index);
textBox_name.Text = item.PsName;
textBox_contacter.Text = item.PsContacter;
textBox_tel.Text = item.PsTel;
textBox_fax.Text = item.PsFax;
}
else
header.Content = "添加供应商信息";
}
此步是提交按钮的事件。
private void button_submit_Click(object sender, RoutedEventArgs e)
{
StockManageDataContext smDataContext = new StockManageDataContext();
if (Index > )
{
var item = smDataContext.Suppliers.SingleOrDefault(c => c.ID == Index);
item.PsName = textBox_name.Text;
item.PsContacter = textBox_contacter.Text;
item.PsTel = textBox_tel.Text;
item.PsFax = textBox_fax.Text;
}
else
{
Supplier item = new Supplier();
item.PsName = textBox_name.Text;
item.PsContacter = textBox_contacter.Text;
item.PsTel = textBox_tel.Text;
item.PsFax = textBox_fax.Text;
smDataContext.Suppliers.InsertOnSubmit(item);
}
try
{
smDataContext.SubmitChanges();
MessageBox.Show("操作成功!");
DialogResult = true;
Close();
}
catch (Exception ex)
{
MessageBox.Show("发生错误!错误信息:" + ex.Message);
}
finally
{
smDataContext.Dispose();
}
}
C# 从数据库中删除,插入,修改 索引选中条目的更多相关文章
- MySQL_(Java)使用JDBC向数据库中删除(delete)数据
MySQL_(Java)使用JDBC向数据库发起查询请求 传送门 MySQL_(Java)使用JDBC向数据库中插入(insert)数据 传送门 MySQL_(Java)使用JDBC向数据库中删除(d ...
- OpenStack手动从数据库中删除实例 - ugyn109的专栏 - 博客频道 - CSDN.NET
由于某种原因我将OpenStack的一个计算节点移除了,但移除前并没有删除在其上运行的实例,后来想通过dash删除这些实例,于是N天过去了,我的dash还显示如下内容:很碍眼是不是?于是我打算手动从数 ...
- 数据库中删除语句Drop、Delete、Truncate的相同点和不同点的比较
数据库删除语句的分别介绍: Delete:用于删除表中的行(注:可以删除某一行:也可以在不删除表的情况下(即意味着表的结构.属性.索引完整)删除所有行) 语法:删除某一行:Delete From 表名 ...
- MyBatis向数据库中批量插入数据
Foreach标签 foreach: collection:指定要遍历的集合; 表示传入过来的参数的数据类型.该参数为必选.要做 foreach 的对象,作为入参时,List 对象默认用 list 代 ...
- C# 批量插入表SQLSERVER SqlBulkCopy往数据库中批量插入数据
#region 帮助实例:SQL 批量插入数据 多种方法 /// <summary> /// SqlBulkCopy往数据库中批量插入数据 /// </summary> /// ...
- Ueditor编辑旧文章,从数据库中取出要修改的内容
Ueditor编辑旧文章,从数据库中取出要修改的内容然后放置到编辑器中: <script type="text/plain" id="editor"> ...
- sql server数据库中删除的过程
这是在vb中的一个对数据库中数据的删除过程,点击按钮后程序第一句则是将你要删除的那条记录的位置作为书签保存到myBookmark这个变量里面,然后选择确定删除的话,首先执行if语句下的第一句 mrc. ...
- SQL Server2008数据库中删除用户,提示数据库主体在该数据库中拥有 架构,无法删除
一个数据库,运行在SQL Server 2008下,数据库用户无法删除,在删除时提示“数据库主体在该数据库中拥有架构,无法删除”.原因很简单,就是由于此用户在数据库中拥有某些架构的所有权,将相关架构的 ...
- MySQL 数据库中删除重复数据的方法
演示数据,仅供参考 查询表结构: mysql> desc test; +-------+------------------+------+-----+---------+----------- ...
随机推荐
- cocos2d c++ 代码规范(译文)
原文在http://cocos2d-x.org/projects/cocos2d-x/wiki/Cocos2d_c++_coding_style,我觉得这个规范非常全面,写的非常好,我只捡一些我认为比 ...
- php抽象类的简单应用
抽象类也是面向对象中的重要概念,和接口.继承的概念重要性相当,在面向对象的开发中,所有的对象都是通过类来描述的,但是反过来,并不是所有类都是用来描绘对象的,广义上讲如果一个类中没有足够信息来描述一个具 ...
- c标签设置jsp页面的绝对路径
<%@ page language="java" pageEncoding="UTF-8"%><%@ taglib prefix=" ...
- HDU 5745 La Vie en rose (DP||模拟) 2016杭电多校联合第二场
题目:传送门. 这是一道阅读理解题,正解是DP,实际上模拟就能做.pij+1 指的是 (pij)+1不是 pi(j+1),判断能否交换输出即可. #include <iostream> # ...
- 取余运算(codevs 1497)
题目描述 Description 输入b,p,k的值,编程计算bp mod k的值.其中的b,p,k*k为长整型数(2^31范围内). 输入描述 Input Description b p k 输出描 ...
- Floyd最短路算法
Floyd最短路算法 ----转自啊哈磊[坐在马桶上看算法]算法6:只有五行的Floyd最短路算法 暑假,小哼准备去一些城市旅游.有些城市之间有公路,有些城市之间则没有,如下图.为了节省经费以及方便计 ...
- Android自定义progressBar
通过继承系统ProgressBar实现 效果图 实现 HorizontalProgressBarWithNumber 自定义属性 <?xml version="1.0" en ...
- Fresco 源码分析(三) Fresco服务端处理(2) Producer具体实现的内容
我们以mProducerFactory.newNetworkFetchProducer()为例,因为这些创建新的producer的方式类似,区别在于是否有包装的处理器,即如果当前处理器中没有正在处理的 ...
- php 正则表达式
<?php //正则表达式 //定界符:斜杠:/正则/ //匹配开始:^ //匹配结束:$ /*\d代表一个数字 \w代表一个单词 */ $zz = "/(13[0-9]|14[5|7 ...
- v4l2
参考文章:http://lwn.net/Articles/203924/ 查阅手册:https://linuxtv.org/downloads/v4l-dvb-apis/#INPUT-STATUS