【個人隨記】C#與數據庫相關互動操作

第一部分 建表

  1. 打開SSMS(sql server management studio),建數據庫和建表
  2. 建表時,關於數據類型:

nvarchar(n):字符串,最大長度n

timestamp:存儲時間,默認設置爲getdate()

  1. 讀入數據:考察csharp讀取和寫入xml文件
  2. Sql常用語句

(1)查詢語句:

SELECT column_name,column_name
FROM table_name
WHERE column_name operator value

(2)連接兩個表

Select * FROM 表1 INNER JOIN 表2 ON 表1.字段號=表2.字段號

(3)連接三個表

Select * FROM (表1 INNER JOIN 表2 ON 表1.字段號=表2.字段號) INNER JOIN 表3 ON 表1.字段號=表3.字段號

(4)插入內容

INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);
INSERT INTO table_name
VALUES (value1,value2,value3,...);

(5)排序

SELECT column_name,column_name
FROM table_name
ORDER BY column_name,column_name ASC|DESC; (默認ASC升序,DESC降序)

(6)統計某一個類別的數量

SELECT COUNT(column_name) as newname FROM table_name
group by column_name1, column_name2

(7)模糊查詢:查詢中間含有123的ID

select * from hs_user where ID like '%123%'

(8)having

HAVING aggregate_function(column_name) operator value;

(在 SQL 中增加 HAVING 子句原因是,WHERE 關鍵字無法與聚合函數一起使用)

  1. c#執行sql語句方法:

(1)sql執行方法一:

SqlCommand command = new SqlCommand(strCmd, connection);
connection.Open();
SqlDataReader reader = command.ExecuteReader();
    while(reader.Read())
    {
        MessageBox.Show(reader["學號"].ToString());
    }
connection.Close();

(2)sql執行方法二:

SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(strCmd, connection);

DataTable dataTable = new DataTable();

sqlDataAdapter.Fill(dataTable);

dGVScores.DataSource = dataTable;

(3)sql插入指令執行:

connection.Open();
using(SqlCommand command = new SqlCommand(strCmd, connection))
{
    command.ExecuteNonQuery();
}
connection.Close();

6、windows form 控件:

一、DataGridView控件:顯示網絡表格

(1)在DataGridView中添加單行數據

int index = this.dGVScores.Rows.Add();
this.dGVScores.Rows[index].Cells[0].Value = "1";
this.dGVScores.Rows[index].Cells[1].Value = "2";

(2)顯示所有數據:

dGVScores.DataSource = dataTable;

二、comboBox控件:顯示下拉菜單

    (1)添加列表:

comboBox1.Items.Add(dr["EmpNo"]);
  1. xml文件處理

(1)讀取所有xml文件中的數據

XmlDocument doc = new XmlDocument();
XmlReaderSettings settings = new XmlReaderSettings();
settings.IgnoreComments = true; //忽略文檔裏面的註釋
XmlReader reader = XmlReader.Create(@"C:\Users\76982\Desktop\sample.xml", settings);
doc.Load(reader);

得到根節點students:

XmlNode xn = doc.SelectSingleNode("students");

得到節點下的所有子節點

XmlNodeList xmlStudents = xn.ChildNodes;

//處理每個student

            foreach (XmlNode xnl in xmlStudents)

            {

                Students student = new Students();

                XmlNodeList xnls = xnl.ChildNodes;

                //獲取子節點的內容

                student.studentID = xnls.Item(0).InnerText;

                student.studentName = xnls.Item(1).InnerText;

                //獲取子節點的屬性值

                student.projectName_1 = xnls.Item(2).Attributes.GetNamedItem("課程名").InnerText;

                student.projectID_1 = xnls.Item(2).Attributes.GetNamedItem("課程號").InnerText;

                student.projectScore_1 = xnls.Item(2).InnerText;

                student.projectName_2 = xnls.Item(3).Attributes.GetNamedItem("課程名").InnerText;

                student.projectID_2 = xnls.Item(3).Attributes.GetNamedItem("課程號").InnerText;

                student.projectScore_2 = xnls.Item(3).InnerText;

               

                /*

                MessageBox.Show(student.studentID + student.studentName +

                    student.projectName_1 + student.projectScore_1 + student.projectID_1 +

                    student.projectName_2 + student.projectScore_2 + student.projectID_2);

                */          

                students.Add(student);

            }

    (2)寫入數據到xml文件

//xml文件設置

            XmlWriterSettings settings = new XmlWriterSettings();

            settings.Indent = true;

 

            string xmlPath = @"C:\軟件工程考研複試機試——李釗華\sample2016.xml";           

            XmlWriter writer = XmlWriter.Create(xmlPath, settings);

 

            //寫入文檔聲明

            writer.WriteStartDocument();

            //寫入新元素

            writer.WriteStartElement("students");

            //寫入分支元素

            writer.WriteStartElement("student");

            //寫入分支元素

            writer.WriteStartElement("學號");

            writer.WriteString("1");//寫入元素內容

            writer.WriteEndElement();

 

            writer.WriteStartElement("姓名");

            writer.WriteString("李釗華");

            writer.WriteEndElement();

 

            writer.WriteStartElement("課程");

            writer.WriteAttributeString("課程號", "1");//寫入元素屬性

            writer.WriteAttributeString("課程名", "開心");

            writer.WriteString("90");

            writer.WriteEndElement();

           

            writer.WriteEndElement();

            writer.WriteEndElement();

            writer.WriteEndDocument();

 

            writer.Flush();//刷新

            writer.Close();

 

結果:

<?xml version="1.0" encoding="utf-8"?>

<students>

  <student>

    <學號>1</學號>

    <姓名>李釗華</姓名>

    <課程 課程號="1" 課程名="開心">90</課程>

  </student>

</students>

 

 

常見問題彙總:

問題一:sqlserver 2008 保存好的數據表不能更改數據類型問題解決

如圖操作即可

https://images2018.cnblogs.com/blog/1400467/201805/1400467-20180519213547857-2098861815.png

https://images2018.cnblogs.com/blog/1400467/201805/1400467-20180519213610949-3871864.png

ssms提醒已創建好的表是無效表的話記得刷新

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章