本项目为一个图书管理系统源代码,包含用户界面、数据库设计及后端逻辑处理等模块,旨在提高图书馆运营效率和用户体验。
这是一个复杂的数据库应用,涵盖了图书管理、借书还书、学生管理和教师管理等功能,并附有详细的代码解释及相关的数据库文件。请使用时注意调整默认设置的数据库用户(sa)及其密码(123456)。以下是部分实现类DatabaseAccess的相关代码:
```csharp
using System.Windows.Forms;
namespace LibraryMis {
public class DatabaseAccess {
private SqlConnection myConnection;
private SqlCommand myCommand;
private SqlDataAdapter myDataAdapter;
private DataSet mySet = new DataSet();
// 构造方法,用于初始化数据库连接等相关操作。
public DatabaseAccess() {
string exePath = AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
string fileName = exePath + connectionString.txt;
FileInfo f = new FileInfo(fileName);
if (f.Exists) { // 文件存在
StreamReader sr = f.OpenText();
string connectionString = sr.ReadToEnd();
myConnection = new SqlConnection(connectionString);
myCommand = myConnection.CreateCommand();
myDataAdapter = new SqlDataAdapter();
myDataAdapter.SelectCommand = myCommand;
SqlCommandBuilder cb = new SqlCommandBuilder(myDataAdapter);
try {
myConnection.Open();
} catch (Exception ex) { // 连接失败提示
MessageBox.Show(连接不到数据库LibraryMis,请在设置中对数据库访问进行正确的配置,取消登录后重新启动图书馆管理系统!, 警告, MessageBoxButtons.OK, MessageBoxIcon.Warning );
FormSetDatabase fmsd = new FormSetDatabase();
fmsd.ShowDialog();
} finally {
try { myConnection.Close(); }
catch (Exception ex) {}
}
} else { // 文件不存在
string connectionString = server=.;database=LibraryMis;uid=sa;pwd=123456;
StreamWriter sw = new StreamWriter(fileName);
sw.Write(connectionString);
sw.Close();
MessageBox.Show(文件 + fileName + 不存在,已创建该文件,请重新启动图书馆管理系统, 警告, MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
// 查询方法
public DataSet FillDataSet(string SelectString, string TableName) {
myDataAdapter.SelectCommand.CommandText = SelectString;
myDataAdapter.Fill(mySet,TableName);
return mySet;
}
// 执行插入、更新和删除操作的方法
public void ExeCommand(string CommandString) {
myCommand.CommandText = CommandString;
try {
myConnection.Open();
myCommand.ExecuteNonQuery();
} catch (Exception ex) {
MessageBox.Show(ex.ToString(), 警告, MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
finally { myConnection.Close(); }
}
// 执行存储过程的方法
public void ExeStoreProcedure(SqlCommand command) {
command.Connection = myConnection;
try {
myCommand.ExecuteNonQuery();
} catch (Exception ex) {
MessageBox.Show(ex.ToString(), 警告, MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
finally {
myConnection.Close();
}
}
}
}
```
该代码片段展示了如何在C#中通过创建`DatabaseAccess`类来管理数据库连接,执行查询、插入和更新操作,并处理可能出现的异常情况。