//连接数据库
static string str = "server=(local);database=saleDB;integrated security=true";
SqlConnection conn = null;
SqlCommand comm = null;
//创建一个适配器
SqlDataAdapter da;
private void btnShow_Click(object sender, EventArgs e)
{
conn = new SqlConnection(str);
//SQL语句
comm = new SqlCommand("SELECT FROM productInfo", conn);
//读取数据库中的文件,然后写入da中
da = new SqlDataAdapter(comm);
//在内存中创建一个临时的表table
DataTable table = new DataTable();
//读取数据库,填充表
daFill(table);
dataGridView的文件源DataSource为那个临时表table
thisdataGridViewDataSource = table;
}
您想问的是winform *** 作数据库可以让多人使用吗?winform *** 作数据库可以让多人,因为winform *** 作数据库是支持多线程 *** 作的,多线程 *** 作也就是多个人进行编辑,所以winform *** 作数据库可以让多人使用。
winformconfig文件连服务器数据库启动很慢,解决方法:
1、修改服务器中SQL Server可使用的最大内存。(注意,SQL Server占用的最大内存一般不要超过系统实际内存的50%、最大不要超过75%,以免导致IIS等内存不够,拖累整个OA无法正常使用。)
2、打开 SQL Server 配置管理器(点击:开始-》所有程序--》microsoft SQL SERVER 2005-->配置工具--》SQL Server Configuration Manager),
最后,重新启动SQL Server服务,终于看到了久违的光速了,一切恢复正常,登入SQL Server Management Studio,即使不加端口号,也不影响。登录点晴OA系统也恢复到了正常的速度。
/// <summary>
/// 获得目标服务器所有数据库名
/// </summary>
/// <param name="serverName"></param>
/// <param name="userName"></param>
/// <param name="password"></param>
public void getDataBaseNameList(string serverName, string userName, string password)
{
SQLDMOApplication sqlApplication = new SQLDMOApplicationClass();
SQLDMOSQLServer sqlServer = new SQLDMOSQLServerClass();
sqlServerConnect(serverName, userName, password); // 连接服务器
foreach (SQLDMODatabase databBase in sqlServerDatabases)
{
if (databBaseName != null)
{
thisDataBaseTreeViewNodesAdd(databBaseName);
getDataBaseTableList(serverName, userName, password, databBaseName);
}
}
}
/// <summary>
/// 加载数据库中表
/// </summary>
/// <param name="serverName">服务器名</param>
/// <param name="userName">用户名</param>
/// <param name="password">密码</param>
/// <param name="dataBaseName">数据库名</param>
private void getDataBaseTableList(string serverName, string userName, string password, string dataBaseName)
{
SQLDMOSQLServer Server = new SQLDMOSQLServerClass();
//连接到服务器
ServerConnect(serverName, userName, password);
//对所有的数据库遍历,获得指定数据库
for (int i = 0; i < ServerDatabasesCount; i++)
{
//判断当前数据库是否是指定数据库
if (ServerDatabasesItem(i + 1, "dbo")Name == dataBaseName)
{
//获得指定数据库
SQLDMO_Database db = ServerDatabasesItem(i + 1, "dbo");
//获得指定数据库中的所有表
for (int j = 0; j < dbTablesCount; j++)
{
thisDataBaseTreeViewNodes[i]NodesAdd(dbTablesItem(j + 1, "dbo")Name);
}
}
}
}
/// <summary>
/// 获得表中所有列名
/// </summary>
/// <param name="serverName">服务器名</param>
/// <param name="userName">用户名</param>
/// <param name="password">密码</param>
/// <param name="tableName">表名</param>
/// <param name="dataBaseName">数据库名</param>
/// <returns></returns>
public string getRowListFromTable(string serverName, string userName, string password, string tableName, string dataBaseName)
{
string result = stringEmpty;
string connectionString = stringEmpty;
connectionString += "server=" + serverName;
connectionString += ";Pwd=" + password;
connectionString += ";UID=" + userName;
connectionString += ";Database=" + dataBaseName;
string commandString = stringEmpty;
commandString += "select name from syscolumns where id=object_id('";
commandString += tableName;
commandString += "')";
SqlConnection sqlConnection = new SqlConnection(connectionString);
SqlCommand sqlCommand = new SqlCommand(commandString, sqlConnection);
SqlDataAdapter dataAdapter = new SqlDataAdapter(commandString, sqlConnection);
DataSet dataSet = new DataSet();
dataAdapterFill(dataSet);
DataTable dataTable = dataSetTables[0];
// DataTable dataTable = sqlConnectionGetSchema("Tables");
foreach (DataRow row in dataTableRows)
{
result += row[0]ToString() + "-";
}
if (result != null)
{
return result;
}
else
{
return "0";
}
}
WinForm c# 备份 还原 数据库, 其实是个非常简单的问题,一个Form,一个Button,一个OpenFileDialog,一个SaveFileDialog下面给出备份与还原类
using System;
using SystemCollectionsGeneric;
using SystemText;
using SystemData;
using SystemDataSqlClient;
using SystemIO;
using SystemCollections;
using SystemWindowsForms;
namespace 我的备份与还原
{
class 备份与还原数据库
{
static string connectionString = "server=;database=master;uid=sa;pwd=";
SqlConnection conn = new SqlConnection(connectionString);
/// <summary>
/// 备份指定的数据库文件
/// </summary>
/// <param name="databasename">要还原的数据库</param>
/// <returns></returns>
public bool BackUpDataBase( string databasefile)
{
if (!FileExists(databasefile))
{
}
//还原的数据库MyDataBase
string sql = "BACKUP DATABASE " + "MyDataBase" + " TO DISK = '" + databasefile + "bak' ";
connOpen();
SqlCommand comm = new SqlCommand(sql, conn);
commCommandType = CommandTypeText;
try
{
commExecuteNonQuery();
}
catch (Exception err)
{
string str = errMessage;
connClose();
return false;
}
connClose();//关闭数据库连接
return true;
}
//以下是还原数据库,稍微麻烦些,要关闭所有与当前数据库相连的连接
//------------------------------------------------------------------------------------------
public string RestoreDatabase(string backfile)
{
///杀死原来所有的数据库连接进程
SqlConnection conn = new SqlConnection();
connConnectionString = "Data Source=;Initial Catalog=master;User ID=sa;pwd =";
connOpen();
string sql = "SELECT spid FROM sysprocesses ,sysdatabases WHERE sysprocessesdbid=sysdatabasesdbid AND sysdatabasesName='" +
"MyDataBase"+ "'";
SqlCommand cmd1 = new SqlCommand(sql, conn);
SqlDataReader dr;
ArrayList list = new ArrayList();
try
{
dr = cmd1ExecuteReader();
while (drRead())
{
listAdd(drGetInt16(0));
}
drClose();
}
catch (SqlException eee)
{
MessageBoxShow(eeeToString());
}
finally
{
connClose();
}
for (int i = 0; i < listCount; i++)
{
connOpen();
cmd1 = new SqlCommand(stringFormat("KILL {0}", list[i]ToString()), conn);
cmd1ExecuteNonQuery();
connClose();
MessageBoxShow("系统已经清除的数据库线程: " + list[i]ToString() + "\r\n正在还原数据库!");
}
//这里一定要是master数据库,而不能是要还原的数据库,因为这样便变成了有其它进程
//占用了数据库。
string constr = @"Data Source=;Initial Catalog=master;User ID=sa;pwd =";
string database = MyDataBase;
string path = backfile;
string BACKUP = StringFormat("RESTORE DATABASE {0} FROM DISK = '{1}'", database, path);
SqlConnection con = new SqlConnection(constr);
SqlCommand cmd = new SqlCommand(BACKUP, con);
conOpen();
try
{
cmdExecuteNonQuery();
MessageBoxShow("还原成功,点击退出系统!");
ApplicationExit();
}
catch (SqlException ee)
{
//throw(ee);
//MessageBoxShow("还原失败");
MessageBoxShow(eeToString());
}
finally
{
conClose();
}
return "成功与否字符串";
}
}
}
winform遍历多个excel的方法如下:
1、将DataTable和现有列表数据合并作为新的数据源绑定到TreeList(或者与源列表数据进行对比,已存在的商品更新信息,不存在的添加进来。),这里导入数据到界面不要对父节点做任何处理,只更新商品信息。
2、重新计算父节点分类的金额(递归),导入数据,界面展示就算完成。
3、提交后台采用创建数据库临时表(#temp),先将所有数据存放在临时表,通过updateselect|insertselect方式保存到数据库。
以上就是关于C#中 winform dataGridview 如何写入数据库mdf文件。下面是代码和保存按钮下的代码全部的内容,包括:C#中 winform dataGridview 如何写入数据库mdf文件。下面是代码和保存按钮下的代码、winform *** 作数据库可以让让多人使用、winformconfig文件连服务器数据库启动很慢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)