当前位置:文档之家› SQL与LINQ

SQL与LINQ

SQL与LINQ
SQL与LINQ

LINQ to SQL

本章内容:

● 使用LINQ to SQL 和Visual Studio 2010 ● 把LINQ to SQL 对象映射到数据库实体上 ● 脱离O/R 设计器构建LINQ to SQL 操作 ● 使用O/R 设计器和自定义对象 ● 用LINQ 查询SQL Server 数据库 ● 存储过程和LINQ to SQL

在C# 2010中,令人激动的新增功能之一是.NET LINQ(Language Integrated Query ,语言集成查询架构)架构。LINQ 主要在编程数据集成的基础上提供了一种轻型外观。这是一个很好的功能,因为数据是最重要的。

每个应用程序都以某种方式处理数据,无论这些数据来自内存(内存中的数据)、数据库、XML 文件、文本文件还是其他地方。许多开发人员发现很难把C#中强类型化的、面向对象的数据移动到数据层中(其中对象是辅助类的成员)。在最好的情况下,从一个环境转换到另一个环境充满了易于出错的操作,且顶多是一个重组过程。

在C#中,用对象编程意味着利用一个强类型化的强大功能处理代码。很容易在名称空间中导航,使用Visual Studio IDE 中的调试器等。但是,在访问数据时,情况就大不相同了。

这是一个没有强类型化的环境,调试很痛苦,甚至是不可能的,大部分时间都花在把字符串作为命令发送给数据库。开发人员还必须注意基础数据,了解它的构造方式或者所有数据点的相互关系。

LINQ 为基础数据存储器提供了一个强类型化的界面。LINQ 为开发人员提供了在编码环境下工作的方式,可以把基础数据作为对象访问,使用IDE 、IntelliSense 甚至调试功能。

有了LINQ ,我们创建的查询现在就变成.NET Framework 和其他环境中的重要成员。在对数据存储器执行查询时,会很快发现它们现在正常工作且行为方式类似于系统中的类型。这说明,现在可以使用任意兼容.NET 的语言并查询基础数据存储器,这在以前是不可能的。

第11章概述了LINQ 。

56

第 章

C#高级编程(第7版)

E264

图56-1显示了LINQ在查询数据中的作用。

在图56-1中,根据要在应用程序中处理的基础数据的不同,有不同类型的LINQ功能。下面列出了各种LINQ技术:

●LINQ to Objects

●LINQ to DataSets

●LINQ to SQL

●LINQ to Entities

LINQ to XML

.NET语言集成查询(LINQ)

对象

关系对象存储器

其他

图 56-1

对于开发人员,类库提供了可以使用LINQ查询的对象,像查询任何其他数据存储器那样。其实,对象只不过是存储在内存中的数据。实际上,对象本身可能就在查询数据。此时应使用LINQ to Objects。

LINQ to SQL(本章的重点)、LINQ to Entities和LINQ to DataSets都提供了查询关系数据的方式。使用LINQ可以直接查询数据库,甚至查询数据库提供的存储过程。图56-1中的最后一项是使用LINQ to XML查询XML(详见第33章)。LINQ非常强大的原因是它对所查询的内容没有任何限制,因为查询非常类似。

56.1 LINQ to SQL和Visual Studio 2010

特殊的是LINQ to SQL是在SQL Server数据库上设置一个强类型化界面的方式。LINQ to SQL提供的方法是目前可用于查询SQL Server最简单的方法。它不仅在数据库中查询单个表。例如,如果调用Northwind数据库的Customers表,提取该数据库的Orders表中某位顾客的特定订单,LINQ就使用两个表之间的关系并代表用户进行查询。LINQ会查询数据库,加载要在代码中使用的数据(也是强类型化的)。

注意,LINQ to SQL不仅可以查询数据,还可以执行需要的Insert/Update/Delete语句。

也可以与整个过程交互操作,并定制所执行的操作,给CRUD(Create/Read/Update/Delete)操作添加自己的业务逻辑。

第56章 LINQ to SQL

E265

Visual Studio 2010非常重视LINQ to SQL ,因为这是一个功能丰富的用户界面,允许设计要使用的LINQ to SQL 类。

下一节介绍如何创建第一个LINQ to SQL 实例,从Northwind 数据库的Products 表中提取数据项。

56.1.1 调用Products 表

作为使用LINQ to SQL 的一个例子,本章首先调用Northwind 数据库中的单个表,用这个表把一些结果显示在屏幕上。

首先创建一个控制台应用程序(使用.NET Framework 4),把Northwind 数据库文件添加到这个项目中(Northwind.MDF)。

现在,在Visual Studio 2010中创建.NET Framework 4提供的许多应用程序类型时,默认已经有了使用LINQ 的正确引用。在创建控制台应用程序时,代码中会包含如下using 语句:

using System;

using System.Collections.Generic; using System.Linq; using System.Text;

可以看出,代码已经包含需要的LINQ 引用。

56.1.2 添加LINQ to SQL 类

下一步是添加一个LINQ to SQL 类。使用LINQ to SQL 时,一个主要优点是Visual Studio 2010会使该任务尽可能简单。Visual Studio 提供了一个与对象相关的映射设计器,称为O/R 设计器,它允许可视化地设计数据库要映射的对象。

首先,右击解决方案,从弹出的菜单中选择Add New Item 命令。在Add New Item 对话框中,包含LINQ to SQL Classes 选项,如图56-2所示。

C#高级编程(第7版)

E266

图 56-2

因为这个例子使用Northwind 数据库,所以把文件命名为Northwind.dbml 。单击Add 按钮,就会创建几个文件,图56-3显示了添加Northwind.dbml 文件后的Solution Explorer 窗口。

图 56-3

这个操作在项目中添加了许多内容。添加了Northwind.dbml 文件,它包含两个组件。因为前面添加的LINQ to SQL 类要使用LINQ ,所以也添加了下面的引用:System.Core 、System.Data.DataSetExtensions 、System.Data.Linq 和System.XML.Linq 。

56.1.3 O/R 设计器概述

在项目(Northwind.dbml 文件)中添加LINQ to SQL 类时,还在IDE 上添加了一个新功能:.dbml 文件的可视化表示。新的O/R 设计器在IDE 的文档窗口中显示为一个选项卡。图56-4显示了O/R 设计器第一次启动时的视图。

第56章 LINQ to SQL

E267

图 56-4

O/R 设计器由两部分组成。第一部分用于显示数据类,它可以是表、类、关联和继承。在这个设计界面上拖动这些项,可以显示所使用的对象的可视化表示。第二部分(右边)用于显示方法,这些方法映射到数据库中的存储过程上。

在O/R 设计器中查看.dbml 文件时,Visual Studio 工具箱中还有一组Object Relational Designer 控件。该工具箱如图56-5所示。

图 56-5

56.1.4 创建Product 对象

这个例子要使用Northwind 数据库中的Products 表,这表示必须创建一个Products 表,Products 表使用LINQ to SQL 映射到这个表上。完成该任务只需在Visual Studio 的Server Explorer 对话框中打开包含在该数据库中的表对应的视图,把Products 表拖放到O/R 设计器的设计界面上。这个操作的结果如图56-6所示。

C#高级编程(第7版)

E268

图 56-6

执行这个操作,会把一些代码添加到.dbml文件的设计器文件中。这些类可以对Products表进行强类型化访问。为了演示这个访问,把注意力转向控制台应用程序的Program.cs文件上。下面显示了这个例子需要的代码:

using System;

using System.Linq;

namespace ConsoleApplication1

{

class Class1

{

static void Main(string[] args)

{

NorthwindDataContext dc = new NorthwindDataContext();

var query = dc.Products;

foreach (Product item in query)

{

Console.WriteLine("{0} | {1} | {2}",

item.ProductID, item.ProductName, item.UnitsInStock);

}

Console.ReadLine();

}

}

}

代码下载ConsoleApplication1.sln

虽然这些代码并不多,但它查询Northwind数据库中的Products表,提取出要显示的数据。下面单步执行这段代码,从Mian()方法的第一行开始:

可从

https://www.doczj.com/doc/1018331670.html,

下载源代码

第56章LINQ to SQL

NorthwindDataContext dc = new NorthwindDataContext();

NorthwindDataContext对象是DataContext类型的一个对象。基本上可以把这个对象看作映射到Connection类型对象上的一个对象。这个对象可以使用连接字符串,并为任何需要的操作连接到数

据库上。

下一行比较有趣:

var query = dc.Products;

这里使用了新的var关键字,它是一个隐式类型化的变量。如果不能确定输出类型,就可以使

用var替代类型定义,再在编译期间设置类型。事实上,代码(dc.Products;)返回一个System.Data.Linq.Table对象,这就是编译应用程序时设置的var。因此,

这表示也可以编写如下语句:

Tablequery = dc.Products;

这种方法实际上比较好,因为程序员以后查看应用程序的代码时,很容易理解其含义。使用var

关键字还有一个隐含的优点:程序员可能会发现它有问题。要使用Table(这基本上是Product对象的一个泛型列表),就应引用System.Data.Linq名称空间。

赋予query对象的值是Products属性的值,它是Table类型。之后,下面的代码迭代Table中的Product对象集合:

foreach (Product item in query)

{

Console.WriteLine("{0} | {1} | {2}",

item.ProductID, item.ProductName, item.UnitsInStock);

}

在本例中,这个迭代从Product对象中提取出ProductID、ProductName和UnitsInStock属性,并

把它们写到程序中。因为我们仅使用该表的几项,所以还可以使用O/R设计器中的选项删除从数据

库中提取的、不感兴趣的列。程序的结果如下:

1 | Chai | 39

2 | Chang | 17

3 | Aniseed Syrup | 13

4 | Chef Anton's Cajun Seasoning | 53

5 | Chef Anton's Gumbo Mix | 0

** Results removed for space reasons **

73 | R ? d Kaviar | 101

74 | Longlife Tofu | 4

75 | Rh ? nbr ? u Klosterbier | 125

76 | Lakkalik ?? ri | 57

77 | Original Frankfurter grüne So?e | 32

从这个例子可以看出,很容易使用LINQ to SQL查询SQL Server数据库。

56.2 对象如何映射到LINQ对象上

LINQ的优点是提供了在代码(和IntelliSense)中使用的强类型化对象,这些对象映射到已有的数

E269

C#高级编程(第7版)

E270据库对象上。另外,LINQ不过是这些已有数据库对象上的一个瘦外观。表56-1列出了数据库对象和LINQ对象之间的映射。

表 56-1

数据库对象 LINQ对象

数据库DataContext

表类和集合

视图类和集合

列属性

关系嵌套的集合

存储过程方法

左侧是正在处理的数据库。数据库是一个完整的实体——表、视图、触发器、存储过程构成数据库。在右边侧LINQ对象中,有一个DataContext对象,它绑定到数据库上。为了与数据库进行必要的交互操作,该对象包含一个连接字符串,并管理所发生的所有事务;它还负责记录操作,并管理数据的输出。DataContext对象通过数据库全面管理事务。

如前面的控制台应用程序例子所示,表转换为类。这表示如果有一个Products表,就有一个Product类。注意LINQ的名称是友好的,因为它把复数形式的表名改为单数形式,给要在代码中使用的类指定合适的名称。除了用作类的数据库表之外,把数据库视图也看作类。另一方面,把列看作属性,因此可以直接管理列的属性(名称和类型定义)。

关系是在各个对象之间映射的嵌套集合。因此可以定义映射到多个项上的关系。

还必须理解存储过程的映射。在代码中,存储过程实际上映射到DataContext实例的方法上。下一节将详细介绍DataContext实例和LINQ中的表对象。

在处理LINQ to SQL的体系结构时,注意其中有3层:应用层、LINQ to SQL层和SQL Server 数据库层。从前面的例子中可以看出,可以在应用程序的代码中创建强类型化的查询:

dc.Products;

这个查询会被LINQ to SQL层转换为SQL查询,之后提供给数据库:

SELECT [t0].[ProductID], [t0].[ProductName], [t0].[SupplierID],

[t0].[CategoryID], [t0].[QuantityPerUnit], [t0].[UnitPrice],

[t0].[UnitsInStock], [t0].[UnitsOnOrder], [t0].[ReorderLevel],

[t0].[Discontinued]

FROM [dbo].[Products] AS [t0]

结果,LINQ to SQL层通过这个查询从数据库中提取行,把返回的数据变成一个强类型化的对象集合,以便于使用。

56.2.1 DataContext对象

同样,在使用LINQ to SQL时,DataContext对象管理在所使用的数据库中发生的事务。使用DataContext对象可以执行许多操作。

在实例化这些对象时,需要几个可选参数,如下所示:

第56章 LINQ to SQL

E271

● 一个字符串,表示SQL Server Express 数据库文件的位置或所使用的SQL Server 的名称 ● 连接字符串

● 另一个DataContext 对象

前两个可选字符串参数也可以包含自己的数据库映射文件。实例化这个对象后,就可以在许多不同的操作中以编程方式使用它。

1. 使用ExecuteQuery()方法

使用DataContext 对象完成的一个简单任务是用ExecuteQuery()方法快速运行自己编写的命令。例如,如果要使用ExecuteQuery()方法提取Products 表中的所有产品,那么代码应如下所示:

using System;

using System.Collections.Generic; using System.Data.Linq;

namespace ConsoleApplication1 {

class Class1 {

static void Main(string[] args) {

DataContext dc = new DataContext(@"Data Source=.\SQLEXPRESS;

AttachDbFilename=|DataDirectory|\NORTHWND.MDF; Integrated Security=True;User Instance=True");

IEnumerablemyProducts =

dc.ExecuteQuery("SELECT * FROM PRODUCTS", ""); foreach (Product item in myProducts) {

Console.WriteLine(item.ProductID + " | " + item.ProductName); }

Console.ReadLine(); } } }

代码下载ConsoleApplication1.sln

在这个例子中,调用ExecuteQuery()方法时传递了一个查询字符串,并返回一个Product 对象集合。在该方法调用中使用的查询是一条简单的Select 语句,它不需要传递任何参数。由于在查询中没有传递任何参数,因此可以使用双引号作为方法调用的第二个必选参数,甚至也可以不提供这个参数。如果要在查询中替换任何值,那么可以按如下方式构建ExecuteQuery()方法调用:

Ienumerable myProducts =

dc.ExecuteQuery("SELECT * FROM PRODUCTS WHERE UnitsInStock > {0}", 50);

在这个例子中,{0}是一个占位符,用于替换要传入的参数值,ExecuteQuery()方法的第二个参数是在替换过程中使用的参数。

可从 https://www.doczj.com/doc/1018331670.html, 下载源代码

C#高级编程(第7版)

E272

2. 使用Connection属性

Connection属性返回System.Data.SqlClient.SqlConnection(由DataContext对象使用)的一个实例。如果需要与应用程序中使用的其他https://www.doczj.com/doc/1018331670.html,代码共享这个连接,或者需要获得该连接提供的SqlConnection属性或方法,就可以使用这个属性。例如,获得连接字符串就很简单:

NorthwindDataContext dc = new NorthwindDataContext();

Console.WriteLine(dc.Connection.ConnectionString);

3. 使用https://www.doczj.com/doc/1018331670.html,事务

如果有一个可以使用的https://www.doczj.com/doc/1018331670.html,事务,就可以使用Transaction属性把这个事务赋予DataContext 对象实例。还可以通过.NET 2.0 Framework中的TransactionScope对象使用事务(需要引用System.Transactions程序集):

using System;

using System.Collections.Generic;

using System.Data.Linq;

using System.Transactions;

namespace ConsoleApplication1

{

class Class1

{

static void Main(string[] args)

{

NorthwindDataContext dc = new NorthwindDataContext();

using (TransactionScope myScope = new TransactionScope())

{

Product p1 = new Product() { ProductName = "Bill's Product" };

dc.Products.InsertOnSubmit(p1);

Product p2 = new Product() { ProductName = "Another Product" };

dc.Products.InsertOnSubmit(p2);

try

{

dc.SubmitChanges();

Console.WriteLine(p1.ProductID);

Console.WriteLine(p2.ProductID);

}

catch (Exception ex)

{

Console.WriteLine(ex.ToString());

}

https://www.doczj.com/doc/1018331670.html,plete();

}

Console.ReadLine();

}

}

可从

https://www.doczj.com/doc/1018331670.html,

下载源代码

第56章LINQ to SQL

}

代码段ConsoleApplication1.sln

在这个例子中,使用了TransactionScope对象,如果数据库中的某个操作失败,就把所有操作

滚到原始状态。

4. DataContext对象的其他方法和属性

除了前面介绍的项之外,DataContext对象还有许多其他可用的方法和属性。表56-2列出了DataContext对象的一些方法。

表 56-2

方法说明

CreateDatabase 可以在服务器上创建数据库

DatabaseExists 可以确定数据库是否存在,是否可以打开

DeleteDatabase 删除相关联的数据库

ExecuteCommand 可以给数据库传入要执行的命令

ExecuteQuery 可以给数据库直接传递查询

GetChangeSet DataContext对象跟踪数据库中发生的变化,这个方法可以访问这些变化

GetCommand 可以访问要执行的命令

GetTable 可以访问数据库中的表集合

Refresh 可以利用数据库中存储的数据刷新对象

SubmitChanges 在代码中建立的数据库中执行CRUD命令

Translate 把IDataReader转换为对象

除了这些方法之外,DataContext对象还包含一些属性,如表56-3所示。

表 56-3

属性说明

ChangeConflicts 调用SubmitChanges()方法时,提供一个导致并发冲突的对象集合

CommandTimeout 可以设置一个超时期限,允许在这个时间段内在数据库上运行命令。如果查询需

要执行较长时间,就应把这个属性设置为较高的值

Connection 可以使用客户端使用的System.Data.SqlClient.SqlConnection对象

DeferredLoadingEnabled 可以指定是否延迟加载一对多或一对一关系

LoadOptions 可以指定或检索DataLoadOptions对象的值

Log 可以指定在查询中使用的命令的输出位置

Mapping 提供映射所基于的MetaModel

ObjectTrackingEnabled 指定是否跟踪数据库中对象的变化,以进行事务处理。如果正在处理只读数据库,

就应把这个属性设置为false

Transaction 可以指定数据库中使用的本地事务

E273

C#高级编程(第7版)

E27456.2.2 T able对象

Table对象表示在数据库中使用的表。例如,前面使用了Product类,它就是一个Table实例。如本章所述,许多方法都可用于Table对象。其中一些方法在表56-4中定义。

表 56-4

方法说明

Attach 可以把一个实体关联到DataContext实例上

AttachAll 可以把一个实体集合关联到DataContext实例上

DeleteAllOnSubmit 可以把所有挂起的操作置于准备删除的状态。从DataContext对象上调用

SubmitChanges()方法时,就执行这里的所有操作DeleteOnSubmit 可以把一个挂起的操作置于准备删除的状态。从DataContext对象上调用

SubmitChanges()方法时,就执行这里的所有操作GetModifiedMembers 提供一个已修改的对象数组,可以访问它们的当前值和更改后的值

GetNewBindingList 提供一个新列表,以绑定到数据存储器上

GetOriginalEntityState 提供一个对象的实例,且显示其初始状态

InsertAllOnSubmit 可以把所有挂起的操作置于准备插入的状态。从DataContext对象上调用

SubmitChanges()方法时,就执行这里的所有操作InsertOnSubmit 可以把一个挂起的操作置于准备插入的状态。从DataContext对象上调用

SubmitChanges()方法时,就执行这里的所有操作

56.3 脱离O/R设计器工作

Visual Studio 2010中的新O/R设计器很容易创建LINQ to SQL需要的所有对象,但基础架构允许从头开始完成所有任务。这将最大限度地控制实际发生的事件。

56.3.1 创建自己的自定义对象

为了完成与前面Customer表相同的任务,需要通过一个类提供Customer表。首先在项目(Customer.cs)中创建一个新类,这个类的代码如下所示:

using System.Data.Linq.Mapping;

namespace ConsoleApplication1

{

[Table(Name = "Customers")]

public class Customer

{

[Column(IsPrimaryKey = true)]

public string CustomerID { get; set; }

[Column]

public string CompanyName { get; set; }

[Column]

可从

https://www.doczj.com/doc/1018331670.html,

下载源代码

第56章LINQ to SQL

public string ContactName { get; set; }

[Column]

public string ContactTitle { get; set; }

[Column]

public string Address { get; set; }

[Column]

public string City { get; set; }

[Column]

public string Region { get; set; }

[Column]

public string PostalCode { get; set; }

[Column]

public string Country { get; set; }

[Column]

public string Phone { get; set; }

[Column]

public string Fax { get; set; }

}

}

代码段Customer.cs

这里,Customer.cs文件定义要用于LINQ to SQL的Customer对象。这个类把Table属性赋予它,

用于表示表类。Table类属性包含一个Name属性,它定义在数据库中使用的表的名称,这个表名要

通过连接字符串中引用。使用Table属性还表示,需要在代码中引用System.Data.Linq.Mapping名称

空间。

除了Table属性之外,类中定义的每个属性都使用Column属性。如前所述,SQL Server数据库

中的列映射到代码的属性上。

56.3.2 通过自定义对象和LINQ查询

只有具备Customer类,才可以查询Northwind数据库中的Customers表。完成这一任务的代码

通过同一控制台应用程序中的以下示例说明:

using System;

using System.Data.Linq;

namespace ConsoleApplication1

{

class Program

{

static void Main()

{

DataContext dc = new DataContext(@"Data Source=.\SQLEXPRESS;

AttachDbFilename=|DataDirectory|\NORTHWND.MDF;

Integrated Security=True;User Instance=True");

dc.Log = Console.Out; // Used for outputting the SQL used

TablemyCustomers = dc.GetTable();

foreach (Customer item in myCustomers)

{

Console.WriteLine("{0} | {1}",

E275

C#高级编程(第7版)

E276

https://www.doczj.com/doc/1018331670.html,panyName, item.Country);

}

Console.ReadLine();

}

}

}

在这个例子中,使用默认的DataContext对象,把包含SQL Server Express数据库Northwind的连接字符串作为一个参数传递。再使用GetTable()方法填充Customer类型的Table类。这个例子中的GetTable()操作使用定制的Customer类:

dc.GetTable();

LINQ to SQL使用DataContext对象在SQL Server数据库上执行查询,把返回的行作为强类型化的Customer对象。这就允许迭代Table对象的集合中的每个Customer对象,获得需要的信息,如下面的Console.WriteLine()语句所示:

foreach (Customer item in myCustomers)

{

Console.WriteLine("{0} | {1}",

https://www.doczj.com/doc/1018331670.html,panyName, item.Country);

}

运行这段代码,会在控制台应用程序中生成如下结果:

SELECT [t0].[CustomerID], [t0].[CompanyName], [t0].[ContactName],

[t0].[ContactTitle], [t0].[Address], [t0].[City], [t0].[Region],

[t0].[PostalCode], [t0].[Country], [t0].[Phone], [t0].[Fax]

FROM [Customers] AS [t0]

--Context: SqlProvider(Sql2005) Model: AttributedMetaModel Build: 4.0.21006.1

Alfreds Futterkiste | Germany

Ana Trujillo Emparedados y helados | Mexico

Antonio Moreno Taquería | Mexico

Around the Horn | UK

Berglunds snabbk ? p | Sweden

// Output removed for clarity

Wartian Herkku | Finland

Wellington Importadora | Brazil

White Clover Markets | USA

Wilman Kala | Finland

Wolski Zajazd | Poland

56.3.3 通过查询限制所调用的列

注意,该查询检索在Customer类文件中指定的每一列。如果删除不需要的列,就可以得到一个新的Customer类文件,如下所示:

using System.Data.Linq.Mapping;

namespace ConsoleApplication1

{

[Table(Name = "Customers")]

可从

https://www.doczj.com/doc/1018331670.html,

下载源代码

第56章LINQ to SQL

public class Customer

{

[Column(IsPrimaryKey = true)]

public string CustomerID { get; set; }

[Column]

public string CompanyName { get; set; }

[Column]

public string Country { get; set; }

}

}

代码段Customer.cs

这里删除了应用程序未使用的所有列。现在,如果运行控制台应用程序,并查看生成的SQL查

询,结果如下:

SELECT [t0].[CustomerID], [t0].[CompanyName], [t0].[Country]

FROM [Customers] AS [t0]

可以看出,在对Customers表的查询中,仅使用在Customer类中定义的3列。

CustomerID属性比较有趣,因为可以在Column属性中使用IsPrimaryKey设置,把该列指定为

表的主键。这个设置接受一个布尔值,这里它设置为true。

56.3.4 使用列名

列的另一个要点是在Customer类中定义的属性名必须与数据库中使用的名称相同。例如,如果

把CustomerID属性名改为MyCustomerID,尝试运行控制台应用程序时,就会得到如下异常:

System.Data.SqlClient.SqlException was unhandled

Message="Invalid column name 'MyCustomerID'."

Source=".Net SqlClient Data Provider"

ErrorCode=-2146232060

Class=16

LineNumber=1

Number=207

Procedure=""

Server="\\\\.\\pipe\\F5E22E37-1AF9-44\\tsql\\query"

为了改正这个错误,需要在前面创建的Customer自定义类中定义列的名称。为此,可以使用Column属性,如下所示:

[Column(IsPrimaryKey = true, Name = "CustomerID")]

public string MyCustomerID { get; set; }

与Table属性一样,Column属性也包含一个Name属性,Name属性指定列在Customers表中

显示的名称。

这会生成如下查询:

SELECT [t0].[CustomerID] AS [MyCustomerID], [t0].[CompanyName], [t0].[Country]

FROM [Customers] AS [t0]

这也意味着,需要使用新的名称MyCustomerID引用该列,如item.MyCustomerID。

E277

C#高级编程(第7版)

E27856.3.5 创建自己的DataContext对象

使用普通的DataContext对象有时并不是最好的方法,而创建自己的DataContext类可以进行更多控制。为此,创建一个新类MyNorthwindDataContext.cs,使这个类继承自DataContext。该类最简单的形式如下:

using System.Data.Linq;

namespace ConsoleApplication1

{

public class MyNorthwindDataContext: DataContext

{

public TableCustomers;

public MyNorthwindDataContext()

: base(@"Data Source=.\SQLEXPRESS;

AttachDbFilename=|DataDirectory|\NORTHWND.MDF;

Integrated Security=True;User Instance=True")

{

}

}

}

代码段MyNorthwindDataContext.cs

这里,MyNorthwindDataContext类继承自DataContext,从前面创建的Customer类中提供Table对象的一个实例。构造函数是这个类的另一个要求。这个构造函数使用一个基本实例初始化对象的新实例,这个对象引用文件(这里是SQL数据库文件的一个连接)。

现在使用自己的DataContext对象,可以改变应用程序中的代码,如下所示:

using System;

using System.Data.Linq;

namespace ConsoleApplication1

{

class Program

{

static void Main()

{

MyNorthwindDataContext dc = new MyNorthwindDataContext();

Table myCustomers = dc.Customers;

foreach (Customer item in myCustomers)

{

Console.WriteLine("{0} | {1}",

https://www.doczj.com/doc/1018331670.html,panyName, item.Country);

}

Console.ReadLine();

}

}

}

代码下载ConsoleApplication1.sln

可从

https://www.doczj.com/doc/1018331670.html,

下载源代码

可从

https://www.doczj.com/doc/1018331670.html,

下载源代码

第56章 LINQ to SQL

E279

创建MyNorthwindDataContext 对象的实例后,就允许该类管理到数据库的连接。现在还可以通过dc.Customers 语句直接访问Customer 类。

56.4 自定义对象和O/R 设计器

除了在自己的.cs 文件中构建自定义对象再把该类关联到自己构建的DataContext 对象上之外,还可以在Visual Studio 2010中使用O/R 设计器构建自己的类文件。以这种方式使用Visual Studio 时,Visual Studio 会创建相应的.cs 文件,O/R 设计器还提供了类文件和自己建立的所有关系的可视化表示。

在查看.dbml 文件的设计器视图时,注意工具箱中有3项:Class 、Association 和Inheritance 。 对于这个例子,从工具箱中选择Class 对象,把它拖放到设计界面上。这会显示泛型类的图像,如图56-7所示。

现在可以单击Class1名称,把这个类重命名为Customer 。右击该名称的旁边,从弹出的菜单中选择Add | Property 命令,可以给类文件添加属性。对于这个例子,给Customer 类添加3个属性——CustomerID 、CompanyName 和Country 。如果突出显示CustomerID 属性,那么可以在Visual Studio 的Properties 对话框中配置该属性,把Primary Key 设置从False 改为True 。也可以突出显示整个类,进入Properties 对话框,把Source 属性改为Customers ,因为这是Customer 对象需要使用的表名。之后,类的可视化表示就如图56-8所示。

图 56-7 图 56-8

从图56-8可以看出,CustomerID 属性的名称旁边可能显示主键图标。此时单击Northwind.dbml 文件旁边的加号,就会看到3个文件——https://www.doczj.com/doc/1018331670.html,yout 、Northwind.designer.cs 和Northwind. dbml.diagram 。https://www.doczj.com/doc/1018331670.html,yout 文件是有助于Visual Studio 在O/R 设计器中进行可视化表示的XML 文件。但最重要的文件是Northwind.designer.cs ,这是我们创建的Customer 类文件。打开这个文件,可以查看Visual Studio 创建的对象。

首先,会发现Customer 类文件在页面的代码中:

[Table(Name="Customers")]

public partial class Customer: INotifyPropertyChanging,

INotifyPropertyChanged

{

// Code removed for clarity }

Customer 类是根据我们在设计器中提供的名称而指定的类名。这个类有一个Table 属性,其值

C#高级编程(第7版)

E280是Customers,因为这是该对象在连接到Northwind数据库上时需要使用的数据库的名称。

在Customer类中,会发现前面定义的3个属性,这里只列出其中一个属性——CustomerID:

[Column(Storage="_CustomerID", CanBeNull=false, IsPrimaryKey=true)]

public string CustomerID

{

get

{

return this._CustomerID;

}

set

{

if ((this._CustomerID != value))

{

this.OnCustomerIDChanging(value);

this.SendPropertyChanging();

this._CustomerID = value;

this.SendPropertyChanged("CustomerID");

this.OnCustomerIDChanged();

}

}

}

代码段Customer.cs

与前面示例在构建立类时的方式类似,所定义的属性使用Column特性和对这个特性可用的一些属性。例如,用IsPrimaryKey项设置主键。

除了Customer类之外,在创建的文件中还有一个继承自DataContext对象的类:

[System.Data.Linq.Mapping.DatabaseAttribute(Name="NORTHWND")]

public partial class NorthwindDataContext: System.Data.Linq.DataContext

{

// Code removed for clarity

}

DataContext对象(NorthwindDataContext)可以连接到Northwind数据库和Customer表上,与前面的例子一样。

使用O/R设计器可以使数据库对象类文件的创建更简单、直接。然而,同时,如果要完全控制,就可以自己编写所有代码,得到期望的结果。

56.5 查询数据库

如前所述,在应用程序的代码中有许多方式查询数据库。该查询最简单的形式如下:

Table query = dc.Products;

这条命令把整个Products表放在query对象实例中。

56.5.1 使用查询表达式

除了使用dc.Products把表直接提取出数据库之外,还可以在代码中直接使用强类型化的查询表

可从

https://www.doczj.com/doc/1018331670.html,

下载源代码

第56章 LINQ to SQL

E281

达式。下面的代码就是一个例子:

using System;

using System.Linq;

namespace ConsoleApplication1 {

class Class1 {

static void Main(string[] args) {

NorthwindDataContext dc = new NorthwindDataContext();

var query = from p in dc.Products

select p;

foreach (Product item in query) {

Console.WriteLine(item.ProductID + " | " + item.ProductName); }

Console.ReadLine(); } } }

代码下载ConsoleApplication1.sln

在这个例子中,用“from p in dc.Products select p;”的查询值填充query 对象(同样是Table对象)。为了增强可读性,把这条命令放在两行上,根据个人爱好也可以放在一行上。

56.5.2 查询表达式

在代码中可以使用许多查询表达式,上面的例子仅是一条简单的select 语句,它返回整个表。表56-5列出了其他一些查询表达式。

56-5

选 项

语 法

Project select Filter where , distinct Test any(), all()

Join join on equals

Group group by , into , group join on equals

into

Aggregate count([]), sum(), min(), max(), avg() Patition skip [while] , take [while] Set union, intersect, except

Order

order by , [ascending | descending]

可从 https://www.doczj.com/doc/1018331670.html, 下载源代码

C#高级编程(第7版)

E28256.5.3 使用表达式筛选

除了直接查询整个表之外,还可以使用where和distinct选项筛选数据项。下面的例子就查询Products表中指定类型的记录:

var query = from p in dc.Products

where p.ProductName.StartsWith("L")

select p;

在该示例中,这个查询从Products表中选择所有以字母L开头的记录。这通过where p.ProductName.StartsWith("L")表达式实现。ProductName属性有许多选择方法,可以细调需要的筛选条件。这个操作生成如下结果:

65 | Louisiana Fiery Hot Pepper Sauce

66 | Louisiana Hot Spiced Okra

67 | Laughing Lumberjack Lager

74 | Longlife Tofu

76 | Lakkalik??ri

根据需要还可以给列表添加任意多个表达式。例如,下面的例子给查询添加了两条where语句:

var query = from p in dc.Products

where p.ProductName.StartsWith("L")

where p.ProductName.EndsWith("i")

select p;

其中一个筛选表达式查找产品名称以字母L开头的项,第二个表达式确保还应用了第二个条件,即对应项必须以字母i结尾。这会生成如下结果:

76 | Lakkalik ?? ri

56.5.4 执行连接

除了使用一个表之外,还可以使用多个表,用查询执行连接。如果把Customers表和Orders表都拖放到Northwind.dbml设计界面上,就会得到如图56-9所示的结果:

图 56-9

第八章 市场预测的类型和步骤

第八章市场预测的类型和步骤 从本章开始,介绍市场预测的有关内容。市场预测是在市场调查的基础上开展的,是对未来市场的预计和估计。市场预测的类型、市场预测方法的种类都很多,将在其后各章中加以介绍。 第一节市场预测的类型 社会生产是为了满足人民不断增长的物质和文化生活的需要。社会生产力水平不断提高,社会生产的发展促进经济和社会的发展,也促进了计会需求的增长。我国的市场需求总量处在不断增长当中,同时随着社会发展和人民生活水平的提高,市场商品需求结构也在逐步发生变化。在市场需求总量不断增长的同时.对商品种类的需求结构,对具体商品的品种、花色、规格、牌号的需求会不尽相同。市场预测工作必须面对这些具体情况,采用不同的预测方法,对市场进行预测。为了使市场营销活动适应不断变化的市场需求,还必须做出满足各种市场营销者决策需要的预测。由此可见,要使市场预测及时地反映市场发展变化的实际,就必须进行多种类型的市场预测。 市场预测的种类很多,它可以按各种标志加以区分。常用的几种市场预测分类标志有:按市场预测时间的长短进行分类;按市场预测的空间范围进行分类;按市场预测的商品内容进行分类;按市场预测采用的方法进行分类等。 一、按市场预测时间的长短分类 按市场预测时间的长短不同分类,市场预测可以分为短期市场预测、近期市场预测、中期市场预测、远期市场预测。 1.短期市场预测 短期市场预测,—般是以周、旬为预测的时间单位,根据市场变化的观察期资料,结合市场当前和未来变化的实际情况,对市场未来一个季度内的发展变化情况做出估计。 短期市场预测的结果可以用来编制月份或季度的各种生产或营销计划。短期市场预测结果一般必须做到及时、准确,对市场的各种变化要有敏感的反应,使商品生产和营销企业能够及时地了解市场的发展变化,以便适当安排商品生产数量和组织市场营销。 2.近期市场预测 近期市场预测一般是以月为时间单位,根据对市场变化的实际观察资料。结合当前市场变化的情况,对市场未来一年内的发展变化情况做出预测。通常是对年度的市场情况做出预测。 近期市场预测的结果可以用来编制生产企业购进原材料计划及生产计划。编制营销企业组织货源和销售计划等,它是企业编制各种年度计划的重要依据之一。 3.中期市场预测 中期市场预测一般是指3、5年之内的市场预测。 中期市场预测的结果可以为生产和营销企业编制3、5年的经济发展计划提供重要依据。同时,中期市场预测还经常用于长期影响市场的各种因素的预测,如对影响市场的经济、技术、政治、社会等重要因素的预测,用来分析研究市场未来的发展趋势,研究市场发展变化的规律。 4.长期市场预测 长期市场预测一般是指5年以上的市场预测,是为制定社会和国民经济发展的长期规划,而专门进行的市场预测。长期市场预测主要是对市场未来的发展变化趋势,为社会和国民经济按客观规律健康地发展,为统筹安排国民经济长期的生产、分配、交换、消费提供重要依据。

SQL中的case-when,if-else实例

create database EXAM go create table student (stuName varchar(10)not null, stuNO int primary key not null, stuSex char(2)check(stuSex='男'or stuSex='女'), stuAge int, stuSeat int, stuAddress varchar(40) ) GO insert into student values('张秋丽','25301','女','21','1','北京海淀'), ('李文才','25302','男','25','2','天津'), ('张三','25303','男','22','3','北京海淀'), ('红尘','25304','女','21','4','湖南长沙'), ('段林希','25305','女','20','5','江西赣州'), ('魏晨','25306','男','23','6','河北石家庄'), ('郑爽','25307','女','20','7',''), ('张杰','25308','男','21','8',''), ('王洁','25309','女','23','9','湖南怀化'), ('刘欣','253010','女','21','10','北京') create table exam (ExamNO int primary key, stuNO int not null, WrittenExam int, LabExam int ) GO insert into exam values(01,250301,86,89), (02,250302,67,78), (03,250303,76,80), (04,250304,79,56), (05,250305,56,63), (06,250306,67,60), (07,250307,90,83), (08,250308,80,79), (09,250309,92,90), (10,250310,55,58)

市场预测基本原理

第8章市场预测基本原理 本章主要阐述市场预测的意义与分类、基本原理、基本步骤、预测内容、预测方法等基本理论和基本知识。为市场预测提供一些理论性的基础知识。 [教学目的和要求] 1、掌握市场预测的基本理论和方法。 2、了解市场预测的原理和程序。 3、掌握不同预测误差的计算方法。 4、掌握市场预测的基本理论和方法。 5、了解市场预测的原理和程序。 6、掌握不同预测误差的计算方 [教学重点和难点] 本章教学重点是阐述市场预测的基本理论和方法。 [课时分配] 本章2课时。 [教学内容] 8.1 市场预测概述 8.1.1 市场预测的特点与作用 1 市场预测的特点与分类 市场预测是指对未知的市场和市场未来的变化进行预计和推测。 市场预测具有如下特点: (1) 预测对象具有不确定性。

(2) 市场预测具有目的性。 (3) 市场预测具有科学性。 (4) 市场预测具有综合性。 (5) 预测误差具有不可避免性。 2 市场预测的作用 (1) 有利于提高决策的科学性。 (2) 有利于提高企业的竞争力。 (3) 有利于提高企业的经济效益。 8.1.2 市场预测的分类 市场预测按照不同标准可以有不同的分类。常用的有以下几种分类。 1 按预测期长短不同,可分为长期预测、中期预测和短期预测。 (1) 长期预测。指五年以上市场发展前景的预测。它是制定中长期计划和经济发展规划的依据。 (2) 中期预测. 指对一年以上五年以下的市场发展前景的预测。它是制定中期计划和规定经济五年发展任务的依据。 (3) 短期预测。短期预测是指对一年以下的市场发展变化的预测。是经营决策的依据。 2 按预测的范围不同,可分为宏观市场预测和微观市场预测 (1) 宏观市场预测。是指以整个国民经济、部门、地区的市场活动为范围进行的各种预测,主要目标是预测市场供求关系的变化和总体市场的运行态势。 (2) 微观市场预测。是指从事生产、流通、服务等不同产业领域的企业,对其经营的各种产品或劳务市场的发展趋势作出估计和判断,为生产经营决策提供支持。 3 按预测的性质不同,可分为定性预测和定量预测 (1) 定性预测。是指预测者通过对市场的调查研究,了解实际情况,凭自己的实践经验和理论水平、业务水平,对市场发展前景的性质、方向和程度作出判断预测。 (2) 定量预测。是指根据历史和现实的统计数据和市场信息,运用统计方法和数学模型,对市场未来发展的规模、水平、速度和比例关系进行分析测定。 4 按预测结果有无附加条件分类,可分为有条件预测和无条件预测 (1) 有条件预测。有条件预测是指市场预测的结果要以其他事件的实现为条件。 (2) 无条件预测。无条件预测是指预测的结果不附加任何条件。 8.1.3 市场预测的要求 1.对预测人员的要求 预测人员必须具有较高的综合性知识,具有预算、综合、分析、推断等各种能力,并具有一定的市场调研和预测经验;有良好的职业道德和敬业精神。 2.对预测资料的要求 应重视数据和有关资料的收集整理和分析,完善数据系统,以确保市场预测所需要的各类数据和资料,使预测建立在充分的信息基础之上。

市场调研与预测学习指南

市场调研与预测-学习指南 一、单项选择题 1、()是指应用各种科学的调查方法,搜集、整理、分析市场资料,对市场的状况进行反映或描述,以认识市场发展变化规律的过程。 A. 市场调研 B. 市场预测 C. 市场分析 D. 市场考察 2、营销战略策划与营销战术策划之间的关系可以概括为:STP+4P+G,其中S是指() A. 细分 B. 确定目标市场 C. 定位 D. 关系 3、 ( )是由于前一次测量使被试对试验中自变量的变化更加敏感而导致的误差。 A.反应误差 B.相互作用误差 C. 选择误差 D.流失误差 4、()是调查者在提出问题的同时,还将问题的一切可能答案或几种主要可能答案全部列出,由被调查者从中选出一个或多个答案作为自己的回答,而不做答案以外的回答。 A. 指导性问题 B. 封闭式问题 C. 开放式问题 D. 实质性问题 5、普查和抽样调查是按照()来分类的。 A. 获得数据的准确性 B. 是否覆盖所有的调查对象 C. 是否存在误差 D. 样本容量的大小 6、( )是对数据进行校对和筛选的过程 A.分类 B.校编 C.编号 D.录入 7、下列()表示数据的离散程度。 A. 中位数 B. 平均数 C.标准差 D.众数 8、因子分析的目的是(),用少量的概括性指标来反映包含在许多测量项目中的信息。 A.收集数据 B.简化数据 C.概括数据 D.归类数据 9、短期市场预测一般是指()的预测。 A. 一周以内 B. 一旬以内 C. 一年以内 D. 一年以上,五年以下 10、拟订消费者需求调查与预测这类报告的标题要( ) A.对产品某个方面有所重点 B.通常采用直接叙述的方式 C.要突出重点 D.突出环境因素 11、决策程序中的第一步程序为() A. 决策选择 B. 决策执行 C. 决策分析 D. 决策判断 12、()是指对所研究的市场现象的客观实际情况,搜集、整理、分析其资料,反映现象的表现。 A. 探索性调查 B. 描述性调查 C. 经常性调查 D. 一次性调查 13、( )可以用来测量二个以上自变量的影响。 A.完全随机设计 B.随机区组设计 C.拉丁方格设计 D.因子设计 14、所谓问题答案设计中的()是指同一问题的若干个答案之间关系是相互排斥的,不能有重叠、交叉、包含等情况。 A. 顺序性原则 B. 连贯性原则

十大面试方法及操作介绍

十大面试方法及操作介绍标准化文件发布号:(9312-EUATWW-MWUB-WUNN-INNUL-DQQTY-

十大面试方法及操作介绍 第一章漫谈法 漫谈法是指面试官在面试前不预设问题,而是根据应聘者的现场反应来灵活选择与调整谈话,从而与应聘者进行开放式的深入交谈。它最大的特点是形散而神不散。面试官在“漫谈”时不仅需要了解应聘者的专业技能,还要深层次的了解他们的综合素质。这就需要面试官很强的逻辑推理能力,细致的观察能力(非语言信息)以及丰富的面试经验。加上,漫谈的随意性大,变数多,横向比较困难,那么充足的面试准备是必要的了。 1.面试官 * 面试官组成:用人部门主管,人力资源部主管,总经理或者副总(中高层管理人管)(面试人员少的时候可以采用录像) * 对公司状况,岗位任职资格,工作时间以及其他应聘者关心的问题进行必要了解 * 创造轻松的面试环境 2.简历的主要内容: * 面试者的相关培训及教育经历 * 相关工作经验及绩效表现(最好量化) * 职业发展定向 * 个人特点,兴趣和爱好 * 其他相关信息,比如社会资源及家庭背景 Tips:记得这对简历中疑点进行追问及确认

——应聘者工作较长时间的空档 ——频繁的跳槽 ——转业 ——不合常理或者前后矛盾的地方 3.注意事项 *事先准备好提问大纲,但是切忌按着大纲逐一提问,而是根据应聘者的回答顺势而问。 岗位要求 如果应聘者有符合要求的工作经验则重点在于考察面试者工作经历与岗位的匹配。 如果面试者工作经验匹配不够,则从面试者的综合素质或者资源出发,重点发掘面试者的内在潜力。 面试官应对面试相关事宜进行介绍,从轻松的话题导入面试。 面试阶段表 一阶段二阶段三阶段四阶段 确认资料教育,专长,成 就个性特征综合考评相符程 度 个人资料工作经验工作职责 5W提问 What:获得何种 成就 When:什么时候 获得 Where:在哪里 Who:竞争对手 行为特征 思维特征 工作经历-岗位职 责 能力素质-岗位要 求 个性特征-企业文 化 个人意向-组织发问题1问题2 问题3问题4 问题5

市场预测简答题

三、简答题 1简述主观概率法的特点及预测步骤 1.答:主观概率是预测者根据自己的实践经验和判断分析能力,对某种事件在未来发生的可能性的估计数值。其特点是:试验空间全部事件的每一个事件的概率之和等于1;每一个事件的概率在0至1之间,即是一个大于或等于0,小于或等于1的数值。 应用主观概率市场预测法,一般要按下面几个步骤进行: (1)说明预测目的和要求,提供必要的资料。 (2)制定调查表,发给每个被调查者填写。 (3)整理汇总主观概率调查表。 (4)根据汇总情况进行判断预测。 2.随机抽样调查的含义及其特点是什么? 2.答:随机抽样调查是从研究对象的总体中,按照随机原则抽取一部分单位作为样本进行 调查,并用调查结果推断总体。 它具有以下特点: (1)抽取样本的客观性。 (2)可以比较准确地推断总体。 (3)是一种比较节省的调查方法。 (4)应用范围广泛,特别适用于研究市场现象的数量表现。 3.什么是函数关系和相关关系?两者有什么联系和区别? 3.答:函数关系反映现象之间存在着明确的、严格的数量依存关系,对于自变量的每一个 数值,因变量都有一个确定的值和它相对应。这种关系可用一个数字表达式或数量对等的经济公式反映出来。 相关关系,又称统计关系。它反映现象之间存在的,但并不严格固定的数量依存关系。它的特点是:(1)现象之间确实存在数量上的客观内在联系,表现为一个现象发生数量上的变化,另一现象也相应地发生数量变化。(2)现象之间数量依存关系不是确定的,具有一定的随机性。表现在给定自变量一个数值,因变量会有若干个数值和它对应,在这若干数值间有一定波动,因变量总是围绕这些数值的平均数并遵循一定的规律而变动。 二者的区别是:函数关系所反映的现象间具体关系是固定的,而相关关系所反映的现象间的具体关系值不固定。 二者的联系是:(1)函数关系中的自变量与因变量由于观察或实验出现误差,其关系值也不可能绝对固定,有时也通过相关关系来反映。(2)相关关系的定量分析必须用函数表达式来近似地反映自变量与因变量之间的一般关系值。 4.市场调查应遵循哪些原则和科学程序? 4.答:一项成功的市场调查,必须坚持以下原则: (1)真实性和准确性原则。 (2)全面性和系统性原则。 (3)经济性原则。 (4)时效性原则。 市场调查的步骤大致可分为四个阶段:

项目开发中常用到的SQL语句

项目开发中常用到的SQL语句1、循环示例 循环示例代码: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 DECLARE @i int DECLARE @name varchar(10) DECLARE @password varchar(10) Set @i = 1000 WHILE @i < 1200 BEGIN Set @i =@i +1 SET @name = RIGHT('0000' + CAST(@i AS varchar(10)),4) set @password = @name select @name insert into dbo.LocomotiveTeminalBase (li_ID,t_ID,lt_IDNumber,lt_MiM,lt_FuWQIP,lt_FuWQDKH,lt_CreatedBy) values('d82575c0-2d21-4c47-a406-7771d7d2c80a','fb5d9a7b-9cd6-4a55-9e90-881706eaf @name,@password,'192.168.1.187','2000','9015c234-e185-4e15-96c6-f53426dd6690') END 2、数据库缓存依赖中用到的SQL语句代码示例: ? 1 2 3 4 5 6 7 8 --查看状态 Select DATABASEpRoPERTYEX('soft_LocomotiveRM_DB','IsBrokerEnabled') --启用broker ALTER DATABASE soft_LocomotiveRM_DB SET NEW_BROKER WITH ROLLBACK IMMEDIATE ALTER DATABASE soft_LocomotiveRM_DB SET ENABLE_BROKER --添加用户

面试类型和步骤

面试的基本形式和步骤 一、多种面试种类 面试的种类主要有以下几类: (一)个人面试 个人面试又称单独面试。指主考官与应聘者单独面谈,是面试中最常见的一种形式。 单独面试又有两种情况,一是只有一个主考官负责整个面试的过程。这种面试大多在较小规模的单位录用较低职位人员时采用。二是由多位主考官参加整个面试过程,但每次均只与一位应试者交谈。个人面试的优点是能够提供一个面对面的机会,让面试双方较深入地交流。一旦通过,一般可以参加小组面试。 经过小组面试和小组讨论,从中即可筛选出参加最终面试的应聘者。最终面试会再次出现个人面试的情况。这时可能会有五、六位考官,也许还会有的考官坐在你的面前,他们中的任何人都可能向面试者提出各种各样的问题让面试者来回答。 (二)集体面试 集体面试主要用于考查应试者的人际沟通能力、洞察与把握环境的能力、组织领导能力等。在集体面试中,通常要求应试者做小组讨论,相互协作解决某一问题,或者让应试者轮流担任领导主持会议,发表演说等,从而考察面试者的组织能力和领导能力。 无领导小组讨论是最常见的一种集体面试法。众考官坐于离应试

者一定距离的地方,不参加提问或讨论,通过观察、倾听为应试者进行评分,应试者自由讨论主考官给定的讨论题目,这一题目一般取自于拟任岗位的职务需要,或是现实生活中的热点问题,具有很强的岗位特殊性、情景逼真性和典型性及可操作性。 1.一次性面试与分阶段面试 1)一次性面试 一次性面试,即指用人单位对应试者的面试集中于一次进行。在一次性面试中,通常由用人单位人事部门负责人、业务部门负责人及人事测评专家组成。在一次面试情况下,应试者是否能面试过关,甚至是否被最终录用,就取决于这一次面试表现。 2)分阶段面试 分阶段面试又可分为"按序面试"和"分步面试"两种。 按序面试一般分为初试、复试与综合评定三步。初试一般由用人单位的人事部门主持,将明显不合格者予以淘汰。初试合格者则进入复试。复试一般由用人部门主管主持,以考查应试者的专业知识和业务技能为主,衡量应试者对拟任岗位是否合适。复试结束后,再由人事部门会同用人部门综合评定每位应试者的成绩,确定最终合格人选。 3)分步面试 一般是由用人单位的主管领导以及一般工作人员组成面试小组,按照小组成员的层次,由低到高的顺序,依次对应试者进行面试。面试的内容依层次各有侧重,低层一般以考查专业及业务知识为主,中

(NEW)面试的基本形式和步骤

面试的基本形式和步骤 对于初出茅庐的应届毕业生来说,每一次面试都像一次严格的考试,必需要做好试前准备。去面试,就要先了解面试的基本形式和步骤,这样才能摆脱面试恐惧,成功面试。 一、多种面试种类 面试的种类主要有以下几类: (一) 个人面试 个人面试又称单独面试。指主考官与应聘者单独面谈,是面试中最常见的一种形式。 单独面试又有两种情况,一是只有一个主考官负责整个面试的过程。这种面试大多在较小规模的单位录用较低职位人员时采用。二是由多位主考官参加整个面试过程,但每次均只与一位应试者交谈。个人面试的优点是能够提供一个面对面的机会,让面试双方较深入地交流。一旦通过,一般可以参加小组面试。 经过小组面试和小组讨论,从中即可筛选出参加最终面试的应聘者。最终面试会再次出现个人面试的情况。这时可能会有五、六位考官,也许还会有更多的考官坐在你的面前,他们中的任何人都可能向面试者提出各种各样的问题让面试者来回答,有点象在校时的毕业答辩,你的处境形同”众矢之的”。但和毕业答辩又有所不同,毕业答辩的内容是在你准备的范围内略有拓展,而面试时你不知面试官会提出的问题在哪个范围,属于”漫游”型问题;毕业答辩时面对的多数是你熟悉的老师,而面试时,全部是你陌生的考官。面临这样的场面和这种气氛,事先必须做好心理准备,到时才能沉着冷静、应答自如。 然而,无论哪种场合,个人面试所要谋求的是尽可能地挖掘出应聘者的真实内涵,通过交谈,相互进行了解,要牢记自己的目的是要让对方接纳自己,这是应试者回答问题的出发点和根源所在。 (二) 集体面试 集体面试主要用于考查应试者的人际沟通能力、洞察与把握环境的能力、组织领导能力等。在集体面试中,通常要求应试者做小组讨论,相互协作解决某一问题,或者让应试者轮流担任领导主持会议,发表演说等,从而考察你的组织能力和领导能力。 无领导小组讨论是最常见的一种集体面试法。众考官坐于离应试者一定距离的地方,不参加提问或讨论,通过观察、倾听为应试者进行评分,应试者自由讨论主考官给定的讨论题目,这一题目一般取自于拟任岗位的职务需要,或是现实生活中的热点问题,具有很强的岗位特殊性、情景逼真性和典型性及可操作性。 1. 一次性面试与分阶段面试

DB2常用SQL语句集

DB2常用SQL语句集 1、查看表结构: describe table tablename describe select * from tablename 2、列出系统数据库目录的内容: list database directory 3、查看数据库配置文件的内容: get database configuration for DBNAME 4、启动数据库: restart database DBNAME 5、关闭表的日志 alter table TBLNAME active not logged inially 6、重命名表 rename TBLNAME1 to TBLNAME2 7、取当前时间 select current time stamp from sysibm.sysdummy1 8、创建别名 create alias ALIASNAME for PRONAME(table、view、alias、nickname) 9、查询前几条记录 select * from TBLNAME fetch first N rows 10、联接数据库 db2 connect to DB user db2 using PWD 11、绑定存储过程命令 db2 bind BND.bnd 12、整理优化表 db2 reorgchk on table TBLNAME db2 reorg table TBLNAME db2 runstats on table TBNAME with distribution and indexes all 13、导出表 db2 export to TBL.txt of del select * from TBLNAME db2 export to TBL.ixf of ixf select * from TBLNAME 以指定分隔符‘|’下载数据: db2 "export to cmmcode.txt of del modified by coldel| select * from cmmcode”14、导入表 db2 import from TBL.txt of del insert into TBLNAME db2 import from TBL.txt of del commitcount 5000 insert into TBLNAME db2 import from TBL.ixf of ixf commitcount 5000 insert into TBLNAME db2 import from TBL.ixf of ixf commitcount 5000 insert_update into TBLNAME db2 import from TBL.ixf of ixf commitcount 5000 replace into TBLNAME db2 import from TBL.ixf of ixf commitcount 5000 create into TBLNAME (仅IXF) db2 import from TBL.ixf of ixf commitcount 5000 replace_create into TBLNAME (仅 IXF) 以指定分隔符“|”加载:

《市场调查与预测》练习题及答案

《市场调查与预测》练习题及答案 第一部分选择题 一、单项选择题 1.市场调查首先要解决的问题是( ) a.确定调查方法 b.选定调查对象 c.明确调查目的 d.解决调查费用 2.实行消费者固定样本持续调查,要求在连续调查过程中( ) a.样本固定不变,持续下去 b.样本隔段时间变换一次,全部更换样本 c.样本隔段时间变换一次,更换比较较小 d.样本隔段时间变换一次,更换比较较大 3.( )的市场信息具有较强的可传递性。 a.可识别 b.有序化程度高 c.目的性明确 d.描述性 4.在访问法中,哪种方法获得信息量最大( ) a.面谈调查 b.邮寄调查 c.电话调查 d.留置调查 5.市场预测程序是( ) a.明确目的、收集资料、分析、预测 b.收集资料、明确目的、分析、预测 c.分析、明确目的、收集资料、预测 d.明确目的、收集资料、预测、分析 6.判断分析法是从事物的( ) a.量的方面进行预测 b.质的方面进行预测 c.量的方面分析判断,进行预测 d.质的方面分析判断,进行预测 7.时间序列数据会呈出现一种长期趋势,它的表现( ) a.只能是上升趋势 b.只能是下降趋势 c.只能是水平趋势 d.可以是上升、下降或水平趋势 8.在一元性线回归方程 =a+bx中,( )表示当自变量每增减一个单位时,因变量

的平均增减量。 a. b. a c. b d. x 9.决策树分析法的决策准则是( ) a.最大收益期望值标准 b.最小损失期望值标准 c.最优损益期望值标准 d.最小风险标准 10.从理论上讲,决策最终选择的理想方案,应该是追求方案( ) a.最优化 b.最满意化 c.最科学化 d.最合理化 11.有目的的收集、整理和加工分析市场信息,使之集中化、有序化,成为可利用的信息,这一过程是() a. 市场调查 b.市场分析 c. 市场预测 d.整理资料 12.对于企业来讲,要消耗大量人力、物力和财力,不符合经济效益的要求的调查形式是() a. 几率抽样 b.非几率抽样 c. 典型调查 d.市场普查 13.下列有关信息,可通过实验调查法获得的是() A.国民收入的变动对消费的影响 B.物价指数的变动对消费行为的影响 C.股价对房价的影响 D.改变包装对消费行为的影响 14.在访问调查法中,获得的信息量最小的方法是() A.面谈调查 B.邮寄调查 C.电话调查 D.留置调查 15.“你穿什么牌号的旅游鞋为什么它的优点是什么”这种个人面谈方式称为() A.倾向偏差询问 B.强制选择 C.非强制选择 D.自由回答

sql循环语句的写法

sql循环语句的写法 SQL循环语句 declare @i int set @i=1 while @i<30 begin insert into test (userid) values(@i) set @i=@i+1 end --------------- while 条件 begin 执行操作 set @i=@i+1 end WHILE 设置重复执行SQL 语句或语句块的条件。只要指定的条件为真,就重复执行语句。可以使用BREAK 和CONTINUE 关键字在循环内部控制WHILE 循环中语句的执行。语法WHILE Boolean_expression { sql_statement | statement_block } [ BREAK ] { sql_statement | statement_block } [ CONTINUE ] 参数

Boolean_expression 返回TRUE 或FALSE 的表达式。如果布尔表达式中含有SELECT 语句,必须用圆括号将SELECT 语句括起来。{sql_statement | statement_block} Transact-SQL 语句或用语句块定义的语句分组。若要定义语句块,请使用控制流关键字BEGIN 和END。BREAK 导致从最内层的WHILE 循环中退出。将执行出现在END 关键字后面的任何语句,END 关键字为循环结束标记。CONTINUE 使WHILE 循环重新开始执行,忽略CONTINUE 关键字后的任何语句。注释 如果嵌套了两个或多个WHILE 循环,内层的BREAK 将导致退出到下一个外层循环。首先运行内层循环结束之后的所有语句,然后下一个外层循环重新开始执行。示例 A. 在嵌套的IF...ELSE 和WHILE 中使用BREAK 和CONTINUE 在下例中,如果平均价格少于$30,WHILE 循环就将价格加倍,然后选择最高价。如果最高价少于或等于$50,WHILE 循环重新启动并再次将价格加倍。该循环不断地将价格加倍直到最高价格超过$50,然后退出WHILE 循环并打印一条消息。USE pubs GO WHILE (SELECT A VG(price) FROM titles) < $30 BEGIN

面试的基本形式和步骤

面试的基本形式和步骤 一、多种面试种类面试的种类主要有以下几类: (一)个人面试又称单独面试。 指主考官与应聘者单独面谈,是面试中最常见的一种形式。 单独面试又有两种情况,一是只有一个主考官负责整个面试的过程。 这种面试大多在较小规模的单位录用较低职位人员时采用。 二是由多位主考官参加整个面试过程,但每次均只与一位应试者交谈。 个人面试的优点是能够提供一个面对面的机会,让面试双方较深入地交流。 一旦通过,一般可以参加小组面试。 经过小组面试和小组讨论,从中即可筛选出参加最终面试的应聘者。 最终面试会再次出现个人面试的情况。 这时可能会有 五、六位考官,也许还会有的考官坐在你的面前,他们中的任何人都可能向面试者提出各种各样的问题让面试者来回答,有点象在校时的毕业答辩,你的处境形同"众矢之的"。 但和毕业答辩又有所不同,毕业答辩的内容是在你准备的范围内略有拓展,而面试时你不知面试官会提出的问题在哪个范围,属于"漫游"型问题;毕业答辩时面对的多数是你熟悉的老师,而面试时,全部是你陌生的考官。 面临这样的场面和这种气氛,事先必须做好心理准备,到时才能沉着冷静、应答自如。

然而,无论哪种场合,个人面试所要谋求的是尽可能地挖掘出应聘者的真实内涵,通过交谈,相互进行了解,要牢记自己的目的是要让对方接纳自己,这是应试者回答问题的出发点和根源所在。 (二)集体面试主要用于考查应试者的人际沟通能力、洞察与把握环境的能力、组织领导能力等。 在集体面试中,通常要求应试者做小组讨论,相互协作解决某一问题,或者让应试者轮流担任领导主持会议,发表演说等,从而考察你的组织能力和领导能力。 无领导小组讨论是最常见的一种集体面试法。 众考官坐于离应试者一定距离的地方,不参加提问或讨论,通过观察、倾听为应试者进行评分,应试者自由讨论主考官给定的讨论题目,这一题目一般取自于拟任岗位的职务需要,或是现实生活中的热点问题,具有很强的岗位特殊性、情景逼真性和典型性及可操作性。 1.一次性面试与分阶段面试1)一次性面试,即指用人单位对应试者的面试集中于一次进行。 在一次性面试中,面试考官的阵容一般都比较"强大",通常由用人单位人事部门负责人、业务部门负责人及人事测评专家组成。 在一次面试情况下,应试者是否能面试过关,甚至是否被最终录用,就取决于这一次面试表现。 面对这类面试,应试者必须集中所长,认真准备,全力以赴。 2)分阶段面试又可分为"按序面试"和"分步面试"两种。 按序面试一般分为初试、复试与综合评定三步。 初试一般由用人单位的人事部门主持,将明显不合格者予以淘汰。 初试合格者则进入复试。

实验10 T-SQL语言编程基础

实验十 T-SQL语言编程基础 姓名:学号: 专业:网络工程班级: 同组人:无实验日期:2012-4-19【实验目的与要求】 1.熟练掌握变量的定义和赋值。 2.熟练掌握各种运算符。 3.熟练掌握流程控制语句,尤其是条件语句和循环语句。【实验内容与步骤】 10.1. 变量的定义与输出 1.变量的定义和赋值 1) 局部变量的声明: DECLARE @variable_name DataType 例如: declare @stuname varchar(20)--声明一个存放学员姓名的变量stuname. declare @stuseat int--声明一个存放学员座位号的变量stuseat 2) 局部变量的赋值: 局部变量的赋值有两种方法: a) 使用Set语句 Set @variable_name=value b) 使用Select语句 Select @variable_name=value 实验: 运行以下程序段,理解变量的使用。

--局部变量的赋值与使用 declare @customer_name varchar(20)--声明变量用来存放客户名称 set @ customer_name ='家电市场'--使用SET语句给变量赋值 select* from xss where客户名称=@customer_name --通过局部变理向sql语句传递数据 请给出运行结果: 练习: 创建一名为 Product_name的局部变量,并在SELECT语句中使用该变量查找“冰箱”的”价格”和”库存量”。 给出相应的语句 declare @Product_name varchar(20) set @Product_name ='冰箱' select价格,库存量 from CP where产品名称= @Product_name 请给出运行测试结果:

市场调研与预测教案设计的

《市场调查预测教案》 一、教学对象:09级市场营销1-4班 二、课程性质和任务: 《市场调查与预测》是经济管理类市场营销专业开设的专业课程,在市场经济条件下,企业必需做市场调查与预测,以便把握瞬息万变的市场,及时调整经营策略。课程的主要任务是运用市场调查与预测的基本原理和科学方法来研究企业在市场竞争过程中遇到的各种具体问题,为企业更好地认识市场、了解市场并进一步把握市场提供切实可行的工具和方法支持。通过教学使学生在充分认识市场,掌握市场调查与预测的基本原理,基本方法,特别是能培养学生注重调查分析研究,提高分析问题,研究问题,解决问题的实际工作能力,使学生毕业后走上工作岗位能在短时期内胜任市场调查与预测的相关工作。 三、课程的任务与基本要求: (一)课程的任务:通过教学使学生在充分认识市场,掌握市场调查与预测的基本原理,基本方法,特别是能培养学生注重调查分析研究,提高分析问题,研究问题,解决问题的实际工作能力,使学生毕业后走上工作岗位能在短时期内胜任市场调查与预测的相关工作。 (二)课程的基本要求:1、学会基本的市场调研的工具和方法。2、运用已掌握的营销知识去开展市场调研与预测活动。3、具备市场敏感性和洞察力。4、有关基本知识、基本原理按“了解、掌握、重点掌握”三个层次进行。 四、教材: 《市场调查与预测》湖南大学出版社廖进球、李志强主编 参考教材: 五、考核方式: 成绩考核:平时+期末=总成绩 平时考核内容:阶段时间、作业、发言讨论和写作

期末考核内容:综合知识考核和综合性实践相结合 第一章绪论 学习目的:通过讲授要求学生了解市场调查的概念、特征和作用;掌握市场调查与市场预测的范围和内容;熟悉市场调查与市场预测的分类、区别和联系,以及方法论基础。 教学重点:市场调查与市场预测的作用和内容 教学难点:市场调查与市场预测的区别与联系 教学方式:课堂讲授 第一节市场调查的意义 一、市场调查的概念 市场调查:市场调查就是以科学的方法、客观的态度,明确研究市场营销有关问题所需要的信息,有效地收集和分析这些信息,为决策部门制定更加有效的营销战略和策略提供基础性的数据和资料。几层含义: 1、市场调查是一种有目的、有计划的认识市场的活动。 2、市场调查的具体对象是市场,重点调查对象是消费者市场 3、市场调查需要借助一套科学的方法,在科学的程序基础上选择正确的调查方法(文案调查法、观察法、询问法、实验法) 4、市场调查是为企业和市场预测和经营决策服务的 二、市场调查的特征

面试的基本形式和步骤技巧

面试的基本形式和步骤技巧 一、多种面试种类 面试的种类要紧有以下几类: (一) 个人面试 个人面试又称单独面试。指主考官与应聘者单独面谈,是面试中最常见的一种形式。 单独面试又有两种事情,一是惟独一具主考官负责整个面试的过程。这种面试大多在较小规模的单位录取较低职位人员时采纳。二是由多位主考官参加整个面试过程,但每次均只与一位应试者交谈。个人面试的优点是可以提供一具面对面的机会,让面试双方较深入地交流。一旦经过,普通能够参加小组面试。 经过小组面试和小组讨论,从中即可筛选出参加最终面试的应聘者。最终面试会再次浮现个人面试的事情。这时可能会有五、六位考官,也许还会有更多的考官坐在你的面前,他们中的任何人都可能向面试者提出各种各样的咨询题让面试者来回答,有点象在校时的毕业答辩,你的处境形同众矢之的。但和毕业答辩又有所别同,毕业答辩的内容是在你预备的范围内略有拓展,而面试时你别知面试官会提出的咨询题在哪个范围,属于漫游型咨询题;毕业答辩时面对的多数是你熟悉的老师,而面试时,全部是你陌生的考官。面临如此的场面和这种气氛,事先必须做好心理预备,到时才干沉着平复、应答自如。但是,不管哪种场合,个人面试所要谋求的是尽可能地挖掘出应聘者的真实内涵,经过交谈,相互进行了解,要牢记自己的目的是要让对方接纳自己,这是应试者回答咨询题的动身点和根源所在。 (二) 集风光试 集风光试要紧用于考查应试者的人际沟通能力、洞察与把握环境的能力、组织领导能力等。在集风光试中,通常要求应试者做小组讨论,相互协作解决某一咨询题,或者让应试者轮流担任领导主持会议,发表演说等,从而考察你的组织能力和领导能力。 无领导小组讨论是最常见的一种集风光试法。众考官坐于离应试者一定距离的地点,别参加提咨询或讨论,经过观看、聆听为应试者进行评分,应试者自由讨论主考官给定的讨论题目,这一题目普通取自于拟任岗位的职务需要,或是现实日子中的热点咨询题,具有很强的岗位特殊性、情景逼真性和典型性及可操作性。 1. 一次性面试与分时期面试 1) 一次性面试 一次性面试,即指用人单位对应试者的面试集中于一次进行。在一次性面试中,面试考官的阵容普通都比较强大,通常由用人单位人事部门负责人、业务部门负责人及人事测评专家组成。在一次面试事情下,应试者是否能面试过关,甚至是否被最终录取,就取决于这一次面试表现。面对这类面试,应试者必须集中所长,仔细预备,全力以赴。 2) 分时期面试 分时期面试又可分为按序面试和分步面试两种。 按序面试普通分为初试、复试与综合评定三步。初试普通由用人单位的人事部门主持,将明显别合格者予以淘汰。初试合格者则进入复试。复试普通由用人部门主管主持,以考查应试者的专业知识和业务技能为主,衡量应试者对拟任岗位是否合适。复试结束后,再由人事部门会同用人部门综合评定每位应试者的成绩,确定最终合格人选。 3) 分步面试 普通是由用人单位的主管领导以及普通工作人员组成面试小组,按照小组成员的层次,由低到高的顺序,依次对应试者进行面试。面试的内容依层次各有侧重,低层普通以考查专业及业务知识为主,中层以考查能力为主,高层则实施全面考查与最终把关。实行逐层淘汰筛选,越来越严。应试者要对各层面试的要求要做到心中有数,力争在每个层次均留下好印象。在低层次面试时,别可藐视、麻痹大意,在面对高层次面试时,也别必过度紧张。

实验7_T-SQL语言编程基础[1]1

实验七T-SQL语言编程基础 【实验目的与要求】 1.熟练掌握变量的定义和赋值。 2.熟练掌握各种运算符。 3.熟练掌握流程控制语句,尤其是条件语句和循环语句。 【实验内容与步骤】 一、准备实验数据 CPXS数据库包含如下三个表: CP(产品编号,产品名称,价格,库存量); XSS(客户编号,客户名称,地区,负责人,电话); CPXSB(产品编号,客户编号,销售日期,数量,销售额); 三个表结构如图2.1~图2.3所示,请在企业管理器中完成表的创建。 图2.1CP表结构

图2.2XSS表结构 图2.3CPXSB表结构 2.1数据写入操作 在企业管理器中输入如图2.4~图2.6的CP表、XSS表和CPXSB表的样本数据。 图2.4CP表的样本数据

图2.5XSS表的样本数据 图2.6CPXSB表的样本数据 10.1.变量的定义与输出 1.变量的定义和赋值 1)局部变量的声明: DECLARE@variable_name DataType 例如: declare@stuname varchar(20)--声明一个存放学员姓名的变量stuname. declare@stuseat int--声明一个存放学员座位号的变量stuseat 2)局部变量的赋值: 局部变量的赋值有两种方法: a)使用Set语句 Set@variable_name=value b)使用Select语句 Select@variable_name=value 实验: 运行以下程序段,理解变量的使用。 --局部变量的赋值与使用 declare@customer_name varchar(20)--声明变量用来存放客户名称set@customer_name='家电市场'--使用SET语句给变量赋值select* from xss where客户名称=@customer_name--通过局部变理向sql语句传递数据请给出运行结果:

市场预测的类型和步骤

第八章市场预测的类型和步骤 同步习题 一、单项选择题(在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后括号内) 1.近期市场预测一般是以()为时间单位。 A. 月 B. 周、旬 C. 3、5年 D. 5年以上 2.以大量的历史观察值为主要依据,建立适当的数学模型,推断或估计市场未来的供给量和需求量是()的特点。 A. 定性市场预测 B. 定量市场预测 C. 宏观市场预测 D.微观市场预测 3.时间序列预测法属于()。 A. 定性市场预测 B. 定量市场预测 C.单项商品预测 D. 商品总量预测 4.市场预测的核心内容是()。 A. 市场商品价格的变动 B. 市场占有率预测 C. 生产发展及其变化趋势 D. 市场供应量和需求量 5.()是进行市场预测的首要问题。 A. 确定市场预测的目的 B. 调查、收集、整理资料 C. 对资料进行分析 D. 检验预测成果 6.定性预测法和定量预测法的主要区别是()。 A. 定性预测只预测市场发展趋势,不测算预测值 B. 定性预测法应用起来灵活方便 C. 预测依据不同 D. 定量预测法测算预测值 7.对于无法确定其主要影响因素的市场现象进行预测的最合适的方法是()。 A. 定性市场预测法 B. 相关回归分析市场预测法 C. 定量市场预测法 D. 时间序列市场预测法 8.对新产品投放市场的需求量进行预测时,最好用()做预测。 A. 定性市场预测法 B. 相关回归分析市场预测法 C. 定量市场预测法 D. 时间序列市场预测法 9.测定出的预测误差偏低的市场预测指标是()。 A. 平均误差 B. 平均绝对误差 C. 均方误差 D. 标准误差 10.以下公式是()的计算公式。 A. 平均误差 B. 平均绝对误差 C. 均方误差 D. 标准误差 11.假如平均绝对百分误差(),则认为预测误差太大,不能被采用。 A. 大于10% B. 大于15% C. 大于10%~20% D. 小于10%~20% 12.相关回归分析市场预测法是根据市场现象各因素之间的相关关系,确定影响市场现象的因素,将影响因素作为()。 A. 不变量 B. 可变量 C. 因变量 D. 自变量 13.能将不同预测对象的预测误差上限用一个相同的数值表示出来的是()。 A. 平均误差 B. 平均绝对百分误差 C. 均方误差 D. 标准误差 14.市场预测所需的资料有()两大类。 A. 一手资料和现实资料 B. 二手资料和历史资料 C. 历史资料和现实资料 D. 一手资料和二手资料 15.选择适当的预测方法,就是()。 A. 选择预测精度最高的方法

相关主题
文本预览
相关文档 最新文档