SharpDevelop 5.1 调试一个简单会员管理系统

190 篇文章 6 订阅

下面使用SharpDevelop 5.1 调试一个简单会员管理系统,源码来自

http://www.softhy.net/soft/35411.htm


在SharpDevelop 5.1打开,运行该项目;

出现下图错误;



多个入口点;注释了Login.cs中的一个测试类,该类包含一个Main()函数;

再运行,出现下图错误;


网上查找bclient,不知为何物;注释掉相关语句;


再运行,出现下图错误;



修改目标CPU为32位Intel兼容,如下图;


跑起来后,需要登录;



用MDB查看工具打开数据库可看到表的内容;MDB查看工具在

http://blog.csdn.net/bcbobo21cn/article/details/51000041



运行起来,仅有个人信息查看和修改功能;



下面看下其主要代码;

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
//Download by http://www.codefans.net
namespace 会员管理系统_桌面级_
{
    public partial class Edit : Form
    {
        public Edit( )//接UserName数据
        {
            InitializeComponent( );
       
            lblUserName.Text = Login.loginedUserName;
        }

        private void Edit_Load(object sender, EventArgs e)
        {
            // TODO: 这行代码将数据加载到表“memberDataSet1.Users”中。您可以根据需要移动或移除它。
            this.usersTableAdapter.Fill(this.memberDataSet1.Users);
            // TODO: 这行代码将数据加载到表“memberDataSet1.Users”中。您可以根据需要移动或移除它。
            this.usersTableAdapter.Fill(this.memberDataSet1.Users);
            // TODO: 这行代码将数据加载到表“memberDataSet1.Users”中。您可以根据需要移动或移除它。
            this.usersTableAdapter.Fill(this.memberDataSet1.Users);

            ShowUserInfo( );
        }

        private void ShowUserInfo( )
        {
            string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + "\\..\\..\\member.mdb";//最新方法,能把数据库放在项目文件夹目录中读取
            //和网页版会员管理系统差不多,代码也是先粘贴过来再修改的
            OleDbConnection conn = new OleDbConnection(strConn);
            string sql = "SELECT * FROM Users WHERE UserName='" + lblUserName.Text + "'";
            OleDbCommand cmd = new OleDbCommand(sql, conn);
            conn.Open( );
            OleDbDataReader reader = cmd.ExecuteReader( );
            reader.Read( );
            txtRealName.Text = reader["RealName"].ToString( );
            string ValueSex = reader["Sex"].ToString( );//性别显示,要加判断
            if ( ValueSex == "女" )
            {
                rbSexWoman.Checked = true;
            }
            else
            {
                rbSexMan.Checked = true;
            }
            cboQuestion.Text = reader["Question"].ToString();
            //cboQuestion无法正常显示
            //cboQuestion.SelectedValue = reader["Question"].ToString( );
            //cboQuestion.DisplayMember = reader["Question"].ToString( );
            //cboQuestion.ValueMember = reader["Question"].ToString( );
            txtAnswer.Text = reader["Answer"].ToString( );
            txtEmail.Text = reader["Email"].ToString( );
            reader.Close( );
            conn.Close( );
        }

        private void btnSumbit_Click(object sender, EventArgs e)
        {
            string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +
                Application.StartupPath + "\\..\\..\\member.mdb";
            OleDbConnection conn = new OleDbConnection(strConn);
            string name, realName, sex, question, answer, email;
                //, address;
            name = lblUserName.Text;
            realName = txtRealName.Text.Trim( );
            if ( rbSexWoman.Checked == true )//性别输入用了个变通的方法,不规范的,有机会要学会用正确的
            {
                sex = "女";
            }
            else
                sex = "男";
            question = cboQuestion.SelectedItem.ToString( );
            answer = txtAnswer.Text.Trim( );
            email = txtEmail.Text.Trim( );
            //address = txtAddress.Text.Trim( );
            string sql = @"UPDATE Users SET RealName=?, Sex=?," +
                "Question=?, Answer=?, Email=? WHERE UserName='" + name + "'";
            OleDbCommand cmd = new OleDbCommand(sql, conn);
            cmd.Parameters.Add(new OleDbParameter("@RealName", OleDbType.WChar));
            cmd.Parameters.Add(new OleDbParameter("@Sex", OleDbType.WChar));
            cmd.Parameters.Add(new OleDbParameter("@Question", OleDbType.WChar));
            cmd.Parameters.Add(new OleDbParameter("@Answer", OleDbType.WChar));
            cmd.Parameters.Add(new OleDbParameter("@Email", OleDbType.WChar));
            //cmd.Parameters.Add(new OleDbParameter("@Address", OleDbType.WChar));
            cmd.Parameters["@RealName"].Value = realName;
            cmd.Parameters["@Sex"].Value = sex;
            cmd.Parameters["@Question"].Value = question;
            cmd.Parameters["@Answer"].Value = answer;
            cmd.Parameters["@Email"].Value = email;
            //cmd.Parameters["@Address"].Value = address;
            conn.Open( );
            cmd.ExecuteNonQuery( );
            conn.Close( );
            Main mymain = new Main( );
            
            mymain.Show( );
            this.Close( );
        }

        private void btnReset_Click(object sender, EventArgs e)
        {
            this.txtRealName.ResetText( );
            this.txtAnswer.ResetText( );
            this.txtEmail.ResetText( );
            //this.cboQuestion.SelectedIndex = 1;  //1为你所要选中的默认值的序号,一般从0开始    程序对该代码没反应
        }

        private void fillByToolStripButton_Click(object sender, EventArgs e)
        {
            ///try{this.usersTableAdapter.FillBy(this.memberDataSet1.Users);}
            ///catch ( System.Exception ex ){System.Windows.Forms.MessageBox.Show(ex.Message);}
        }

        private void txtRealName_Validating(object sender, CancelEventArgs e)
        {
            if (txtRealName.Text.Length == 0)
                errRealName.SetError(txtRealName, "用户名不能为空!");
            else
                errRealName.Clear( );
        }

        private void gbxSex_Validating(object sender, CancelEventArgs e)
        {

        }

        private void cboQuestion_Validating(object sender, CancelEventArgs e)
        {
            if (cboQuestion.SelectedItem == null)
                errQuestion.SetError(cboQuestion, "请选择密码提示问题!");
            else
                errQuestion.Clear( );
        }

        private void txtAnswer_Validating(object sender, CancelEventArgs e)
        {
            if (txtAnswer.Text.Length == 0)
                errAnswer.SetError(txtAnswer, "请输入密码查询答案!");
            else
                errAnswer.Clear( );
        }

        private void txtEmail_Validating(object sender, CancelEventArgs e)
        {
            if (txtEmail.Text.Length == 0)
                errEmail.SetError(txtEmail, "请输入电子邮件地址!");
            else
                errEmail.Clear( );
        }
    }
}

使用了OLEDB的方式访问Access;数据提供者是Microsoft.Jet.OLEDB.4.0;
数据库在程序的启动路径;
用OleDbDataReader读取到数据以后显示;


更新数据时使用了OleDbCommand对象的参数属性,先添加参数,然后设置参数的值;然后用OleDbCommand对象的ExecuteNonQuery方法执行SQL语句;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值