簡體   English   中英

如何使用本地數據庫在C#中創建數據集

[英]How do I create a dataset in C# with local database

我是C#的初學者,並在Windows Forms App中為客戶數據創建了一個數據庫,它的功能是獲取用戶的電話號碼,然后搜索表格,如果找到該表格,則使用信息填充數據字段; 否則,需要將新客戶添加到表中。

運行代碼時出現錯誤

System.ArgumentException:'不支持的關鍵字:'數據源(localdb)\\ mssqlocaldb; attachdbfilename'。

這是我的代碼:

    DataTable TableCust;
    SqlConnection cnCust;
    SqlDataAdapter dataCust;
    DataGrid dtGridCust;
    public bool buttonClicked = false;
    private static int CurrentOrder = 1000;
    private int i = 0;
    Validation v = new Validation();

    public frmPizzaPetes()
    {
        InitializeComponent();
    }
    string dataSource;
    string SqlParms;
    private void Form1_Load(object sender, EventArgs e)
    {
        btnAccept.Enabled = false;
        lblOrderNo.Text = CurrentOrder.ToString();
        Price();
        //
        dataSource = @"Data Source(LocalDB)\MSSQLocalDB;AttachDbFilename=|C:\Users\tyada\DATABASE\Pizza.mdf;";
        SqlParms = "Integrated Securtiy=True; Connect Timeout==30";
        string SqlCust = "select * from Customers";
        string strConn = dataSource + SqlParms;
        cnCust = new SqlConnection(strConn);
        cnCust.Open();
        TableCust = new DataTable();
        dtGridCust.DataSource = TableCust;
    }

 public bool ifCustIsFound()
    {
        bool tester=false;
        string SqlCustomer = "SELECT*FROM Customers WHERE CustPhone= '" + mtbPhone.Text + "';";
        dataCust = new SqlDataAdapter(SqlCustomer, cnCust);
        dataCust.Fill(TableCust);

        if (TableCust.Rows.Count > 0)
        {
            txtName.Text = TableCust.Rows[0]["CustName"].ToString();
            txtAddress.Text = TableCust.Rows[0]["CustAddress"].ToString();
            txtApt.Text = TableCust.Rows[0]["CustSuite"].ToString();
            txtCity.Text = TableCust.Rows[0]["CustCity"].ToString();
            mtbZip.Text = TableCust.Rows[0]["CustZip"].ToString();
            cboState.Text = TableCust.Rows[0]["CustState"].ToString();
           // dtGridCust.DataSource = TableCust;
        }


        else
        {
            DialogResult dlg=MessageBox.Show("Add Customer?","Customer not found", MessageBoxButtons.YesNo);
            if (dlg == DialogResult.Yes)
            {
                     string strConn = dataSource + SqlParms;
                     SqlDataAdapter adaptSQL = new SqlDataAdapter(strSQL, strConn);
                     SqlCommand cmdCust = new SqlCommand();
                     SqlCommandBuilder cmdBld = new SqlCommandBuilder(adaptSQL);
                     DataRow newCust;
                     newCust = TableCust.NewRow();   
                     newCust["CustPhone"] = mtbPhone.Text;
                     newCust["CustName"] = txtName.Text;
                     newCust["CustAddress1"] = txtAddress.Text;
                     newCust["CustAddress2"] = txtApt.Text;
                     newCust["CustCity"] = txtCity.Text;
                     newCust["CustState"] = cboState.Text;
                     newCust["CustZip"] = mtbZip.Text;
                     try
                     {
                         TableCust.Rows.Add(newCust);  
                         cmdBld.GetUpdateCommand();   
                         adaptSQL.Update(TableCust);
                         MessageBox.Show("Customer Added!");
                     }
                     catch (SqlException)
                     {
                         MessageBox.Show("Customer Add Failed!");
                     }

            } 
            txtName.Focus();

        }

        return tester;
    }

似乎數據源中缺少“ =”。 嘗試這個。

 private void Form1_Load(object sender, EventArgs e)
    {
        btnAccept.Enabled = false;
        lblOrderNo.Text = CurrentOrder.ToString();
        Price();
        //
        dataSource = @"Data Source =(LocalDB)\MSSQLocalDB;AttachDbFilename=|C:\Users\tyada\DATABASE\Pizza.mdf;";
        SqlParms = "Integrated Securtiy=True; Connect Timeout==30";
        string SqlCust = "select * from Customers";
        string strConn = dataSource + SqlParms;
        cnCust = new SqlConnection(strConn);
        cnCust.Open();
        TableCust = new DataTable();
        dtGridCust.DataSource = TableCust;
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM