一。删除

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# 从数据库中删除,插入,修改 索引选中条目的更多相关文章

  1. MySQL_(Java)使用JDBC向数据库中删除(delete)数据

    MySQL_(Java)使用JDBC向数据库发起查询请求 传送门 MySQL_(Java)使用JDBC向数据库中插入(insert)数据 传送门 MySQL_(Java)使用JDBC向数据库中删除(d ...

  2. OpenStack手动从数据库中删除实例 - ugyn109的专栏 - 博客频道 - CSDN.NET

    由于某种原因我将OpenStack的一个计算节点移除了,但移除前并没有删除在其上运行的实例,后来想通过dash删除这些实例,于是N天过去了,我的dash还显示如下内容:很碍眼是不是?于是我打算手动从数 ...

  3. 数据库中删除语句Drop、Delete、Truncate的相同点和不同点的比较

    数据库删除语句的分别介绍: Delete:用于删除表中的行(注:可以删除某一行:也可以在不删除表的情况下(即意味着表的结构.属性.索引完整)删除所有行) 语法:删除某一行:Delete From 表名 ...

  4. MyBatis向数据库中批量插入数据

    Foreach标签 foreach: collection:指定要遍历的集合; 表示传入过来的参数的数据类型.该参数为必选.要做 foreach 的对象,作为入参时,List 对象默认用 list 代 ...

  5. C# 批量插入表SQLSERVER SqlBulkCopy往数据库中批量插入数据

    #region 帮助实例:SQL 批量插入数据 多种方法 /// <summary> /// SqlBulkCopy往数据库中批量插入数据 /// </summary> /// ...

  6. Ueditor编辑旧文章,从数据库中取出要修改的内容

    Ueditor编辑旧文章,从数据库中取出要修改的内容然后放置到编辑器中: <script type="text/plain" id="editor"> ...

  7. sql server数据库中删除的过程

    这是在vb中的一个对数据库中数据的删除过程,点击按钮后程序第一句则是将你要删除的那条记录的位置作为书签保存到myBookmark这个变量里面,然后选择确定删除的话,首先执行if语句下的第一句 mrc. ...

  8. SQL Server2008数据库中删除用户,提示数据库主体在该数据库中拥有 架构,无法删除

    一个数据库,运行在SQL Server 2008下,数据库用户无法删除,在删除时提示“数据库主体在该数据库中拥有架构,无法删除”.原因很简单,就是由于此用户在数据库中拥有某些架构的所有权,将相关架构的 ...

  9. MySQL 数据库中删除重复数据的方法

    演示数据,仅供参考 查询表结构: mysql> desc test; +-------+------------------+------+-----+---------+----------- ...

随机推荐

  1. Solr DIH导入出现 Data Config problem: 前言中不允许有内容 异常

    Solr配置DIH导入时出现 “Data Config problem: 前言中不允许有内容.” 异常. <response> <lst name="responseHea ...

  2. ext上传文件到mysql上

    不废话,上代码: controller如下: /** * 上传附件 * @param request * @param baseBlob * @param response */ @RequestMa ...

  3. 安装qmake与环境变量解析

    转自:http://www.kuqin.com/qtdocument/qmake-manual-2.html 安装qmake 当Qt被连编的时候,默认情况下qmake也会被连编. 这一部分解释如何手工 ...

  4. 玩转Chrome workplace

    简介 相信大家都知道Chrome Develop Tools中的workplace,这使得我们能够让本地的文件夹在Source面板下可以编辑.没错,这使得chrome同样可以成为我们可选的编辑器之一, ...

  5. linux 创建连接命令 ln -s 软链接

    这是linux中一个非常重要命令,请大家一定要熟悉.它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s, 具体用法是:ln -s 源文件 目标文件. 当 我们需要在不同 ...

  6. cf455a(简单dp)

    题意:给出一个长度为n的数列,元素为a1, a2, ...an:删除ai,ai+1,ai-1 可以得到ai积分,输出最多可以得到多少积分: 题解:开一个数组a存取数列,a[i]表示元素i的个数,所以删 ...

  7. Oracle主键操作

    http://blog.csdn.net/zhanggnol/article/details/6221895

  8. Java Hour 27 Concurrent

    有句名言,叫做10000小时成为某一个领域的专家.姑且不辩论这句话是否正确,让我们到达10000小时的时候再回头来看吧. 27 Hours. 本小时主要过一下多线程相关的基本API. Defining ...

  9. 常用的 Python 爬虫技巧总结

    用python也差不多一年多了,python应用最多的场景还是web快速开发.爬虫.自动化运维:写过简单网站.写过自动发帖脚本.写过收发邮件脚本.写过简单验证码识别脚本. 爬虫在开发过程中也有很多复用 ...

  10. mtr命令

    mtr 命令详解 一般在windows 来判断网络连通性用ping 和tracert,ping的话可以来判断丢包率,tracert可以用来跟踪路由,在Linux中有一个更好的网络连通性判断工具,它可以 ...