注册 登录
编程论坛 C# 论坛

WebService,不同的电脑同样的sql语句同时调用时,获取dataset数据不同

zhusong1998 发布于 2021-04-05 18:20, 1307 次点击
我用c#在服务器上布置了一个WebService,写了一个获取DataSet的方法。
两台电脑使用同样的sql语句,在同一时间调用这个方法,其中的一个电脑返回的数据丢失很多。如果不同时调用,则不存在这个问题。

很困惑,请指教。


以下是服务端代码:
程序代码:
[WebMethod(Description = "查询符合条件的数据,直接返回一个dataset")]
        public DataSet getDataSet(string SQLstr)
        {
            DataSet My_DataSet1 = new DataSet(); //创建DataSet对象
            try
            {
                SqlDataAdapter SQLda = new SqlDataAdapter(SQLstr,getcon()); //创建一个SqlDataAdapter对象,并获取指定数据表的信息
                SQLda.Fill(My_DataSet1, "Mytable"); //通过SqlDataAdapter对象的Fill()方法,将数据表信息添加到DataSet对象中
            }
            catch
            {
            }
            finally
            { con_close(); }//关闭数据库的连接
            return My_DataSet1; //返回DataSet对象的信息           
        }
1 回复
#2
qq28895779662021-04-15 11:22
换种调用方式试一下,动态调用
public static void Get_Service(string url)
        {
            WebClient web = new WebClient();
            Stream stream = web.OpenRead(url + "Report.asmx?WSDL");
            ServiceDescription description = ServiceDescription.Read(stream);
            ServiceDescriptionImporter importer = new ServiceDescriptionImporter();

            importer.ProtocolName = "Soap";
            importer.Style = ServiceDescriptionImportStyle.Client;
            importer.CodeGenerationOptions = CodeGenerationOptions.GenerateProperties | CodeGenerationOptions.GenerateNewAsync;
            importer.AddServiceDescription(description, null, null);
            CodeNamespace nmspace = new CodeNamespace();
            CodeCompileUnit unit = new CodeCompileUnit();
            unit.Namespaces.Add(nmspace);
            ServiceDescriptionImportWarnings warning = importer.Import(nmspace, unit);
            CodeDomProvider provider = CodeDomProvider.CreateProvider("CSharp");
            CompilerParameters parameter = new CompilerParameters();
            parameter.GenerateExecutable = false;
            parameter.GenerateInMemory = true;
            CompilerResults result = (parameter, unit);
            Assembly asm =
            WebService_Type = asm.GetType("Report");
            run_service = true;
        }
1