多线程菜菜问题

时间:2022-03-14 15:39:33
系统中在复制文件时,用多线程.但是提示文件已被另一进程使用.被调用的函数中有Messagebox竟然显示两次.虽然有这样的提示但是操作成功,可见多线程本身没问题.
高人们看看为什么?

还有两个问题
使用mdb数据库,希望给个密码,不希望直接被ACCESS打开.连接字符串怎么写,还有就是压缩mdb的问题.以前没试过,试一下真的有效果.上次看有人贴这问题,我找不到了.

18 个解决方案

#1


private void button9_Click(object sender, System.EventArgs e)
{
string source=@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=e:\North.mdb";
string strsql="select * from supply";

OleDbDataAdapter da=new OleDbDataAdapter(strsql,source); 
DataSet ds=new DataSet();
da.Fill(ds,"tab");
dataGrid1.SetDataBinding(ds,"tab");

}

#2


up
学习

#3


关于生成数据库链接,这里有个方便的小工具:
http://upserver3.ys168.com/ys168up/D1/YY.aspx?f=04L49E6E1E0E1D8D5UN830UT5LUN571UW675UW4VUP956UW941D6A04AWI7I5F8G2E0E2E0D6E3A24E7E1E5E2E6C2

#4


hdhai9451的字符串中不包涵密码.工具就不必了,.NET自带的控件就能自动生成.不过能问的就不要想了

#5



string conStr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=???????;Persist Security Info=False;Jet OLEDB:DataBase Password=??????";

#6


Persist Security Info=False,这条加上就行了,多谢!可能只能多等几天才能给你分了,我还有两问题呢

#7


帮你顶

#8


其他线程出现异常,主线程可能不会显示出来。

#9


其实是在拷贝文件时用多线程是怕文件大用户不耐烦.整个过程中,操作都是正常的.文件也移去正确的路径了.但就是有异常说文件被其它进程使用,而且被调用的函数中放的一个消息框,执行时会弹出两次.要说明的是被多线程调用的方法是在类库中的,消息框也是在类库中的.但我想应该不是问题吧!如果不用多线程,只是让用户多等一会.没任何问题.
还有数据库怎么压缩来着,高手这么多,就不必我想了吧.给个思路就成

#10


多线程了结了,压缩谁提个醒?

#11


为什么我的技术贴从来没多少人问津?

#12


using System.runtime.interopservices;
---------------------------------------------------

object jro = Activator.CreateInstance(Type.GetTypeFromProgID("JRO.JetEngine"));

object[] param = new object[]{
@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\src.mdb;Jet OLEDB:Engine Type=5",
@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\dst.mdb;Jet OLEDB:Engine Type=5"};

jro.GetType().InvokeMember("CompactDatabase",
System.Reflection.BindingFlags.InvokeMethod,
null,
jro,
param);

System.Runtime.InteropServices.Marshal.ReleaseComObject(jro);
jro=null;

#13


楼上高人,9号我体验过你的代码.说缺少引用,后来就一直没时间.能不能跟我说说你的思路?哪些类做什么的?这样我结贴可能快点.

#14


用线程时要注意线程共享资源的问题

#15


线程是第一个解决的问题,谁告诉我一下数据库压缩的问题.就剩它了

#16


jro.GetType().InvokeMember("CompactDatabase",
System.Reflection.BindingFlags.InvokeMethod,
null,
jro,
param);

第三个参数是绑定,可以是null.但我这里抛出错误.我对调用COM不是太了解,能不能请 OneDotRed 解释一下程序.

#17


抛出什么异常??
我这里执行正常啊

#18


未处理的"System.ArgumentException"类型的异常出现在mscorlib.dll中.其它信息:必须指定描述调用操作所需的绑定标志.

我是不是另外还缺了什么?

#1


private void button9_Click(object sender, System.EventArgs e)
{
string source=@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=e:\North.mdb";
string strsql="select * from supply";

OleDbDataAdapter da=new OleDbDataAdapter(strsql,source); 
DataSet ds=new DataSet();
da.Fill(ds,"tab");
dataGrid1.SetDataBinding(ds,"tab");

}

#2


up
学习

#3


关于生成数据库链接,这里有个方便的小工具:
http://upserver3.ys168.com/ys168up/D1/YY.aspx?f=04L49E6E1E0E1D8D5UN830UT5LUN571UW675UW4VUP956UW941D6A04AWI7I5F8G2E0E2E0D6E3A24E7E1E5E2E6C2

#4


hdhai9451的字符串中不包涵密码.工具就不必了,.NET自带的控件就能自动生成.不过能问的就不要想了

#5



string conStr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=???????;Persist Security Info=False;Jet OLEDB:DataBase Password=??????";

#6


Persist Security Info=False,这条加上就行了,多谢!可能只能多等几天才能给你分了,我还有两问题呢

#7


帮你顶

#8


其他线程出现异常,主线程可能不会显示出来。

#9


其实是在拷贝文件时用多线程是怕文件大用户不耐烦.整个过程中,操作都是正常的.文件也移去正确的路径了.但就是有异常说文件被其它进程使用,而且被调用的函数中放的一个消息框,执行时会弹出两次.要说明的是被多线程调用的方法是在类库中的,消息框也是在类库中的.但我想应该不是问题吧!如果不用多线程,只是让用户多等一会.没任何问题.
还有数据库怎么压缩来着,高手这么多,就不必我想了吧.给个思路就成

#10


多线程了结了,压缩谁提个醒?

#11


为什么我的技术贴从来没多少人问津?

#12


using System.runtime.interopservices;
---------------------------------------------------

object jro = Activator.CreateInstance(Type.GetTypeFromProgID("JRO.JetEngine"));

object[] param = new object[]{
@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\src.mdb;Jet OLEDB:Engine Type=5",
@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\dst.mdb;Jet OLEDB:Engine Type=5"};

jro.GetType().InvokeMember("CompactDatabase",
System.Reflection.BindingFlags.InvokeMethod,
null,
jro,
param);

System.Runtime.InteropServices.Marshal.ReleaseComObject(jro);
jro=null;

#13


楼上高人,9号我体验过你的代码.说缺少引用,后来就一直没时间.能不能跟我说说你的思路?哪些类做什么的?这样我结贴可能快点.

#14


用线程时要注意线程共享资源的问题

#15


线程是第一个解决的问题,谁告诉我一下数据库压缩的问题.就剩它了

#16


jro.GetType().InvokeMember("CompactDatabase",
System.Reflection.BindingFlags.InvokeMethod,
null,
jro,
param);

第三个参数是绑定,可以是null.但我这里抛出错误.我对调用COM不是太了解,能不能请 OneDotRed 解释一下程序.

#17


抛出什么异常??
我这里执行正常啊

#18


未处理的"System.ArgumentException"类型的异常出现在mscorlib.dll中.其它信息:必须指定描述调用操作所需的绑定标志.

我是不是另外还缺了什么?