朋友刚才和我抱怨说他公司招asp.net的程序员太难,来了不少人,但是做的笔试题没一个满意的。
他那个题目大致是这样的:将一个“产品”对象数组存入数据库,自行设计数据库结构,然后将存入的这些数据读取出来成为“产品”对象。
提供给笔试者的是:一个Console Application的工程文件夹,主要包含2个文件(Product.cs和Program.cs),Product.cs是“产品”类的定义,Program.cs的Main方法里已经写好了上下文To Do和一些必要的注释。那个“产品”对象数组如下:
Product[] products = new Product[]{
new Product(1, "龙眼", "我国南亚热带名贵特产。", DateTime.Now, ProductState.Normal),
new Product(2, "甘蔗", "甘蔗是一年生宿根热带和亚热带草本植物。", DateTime.Now, ProductState.Normal),
new Product(3, "苹果", "“一天一个苹果”是人们熟知的健康口号。", DateTime.Now, ProductState.Disabled),
new Product(4, "桃", "", DateTime.Now, ProductState.Disabled),
new Product(5, "椰子", "常绿乔木。", DateTime.Now, ProductState.Normal)
};--------------他们公司规模并不大,做项目时个人的职责常常也不会界限的非常清晰。
我想问大家的是,这个题目对于一个asp.net程序员来说,要求是否有偏差,是否要求太高或太低?
他那个题目大致是这样的:将一个“产品”对象数组存入数据库,自行设计数据库结构,然后将存入的这些数据读取出来成为“产品”对象。
提供给笔试者的是:一个Console Application的工程文件夹,主要包含2个文件(Product.cs和Program.cs),Product.cs是“产品”类的定义,Program.cs的Main方法里已经写好了上下文To Do和一些必要的注释。那个“产品”对象数组如下:
Product[] products = new Product[]{
new Product(1, "龙眼", "我国南亚热带名贵特产。", DateTime.Now, ProductState.Normal),
new Product(2, "甘蔗", "甘蔗是一年生宿根热带和亚热带草本植物。", DateTime.Now, ProductState.Normal),
new Product(3, "苹果", "“一天一个苹果”是人们熟知的健康口号。", DateTime.Now, ProductState.Disabled),
new Product(4, "桃", "", DateTime.Now, ProductState.Disabled),
new Product(5, "椰子", "常绿乔木。", DateTime.Now, ProductState.Normal)
};--------------他们公司规模并不大,做项目时个人的职责常常也不会界限的非常清晰。
我想问大家的是,这个题目对于一个asp.net程序员来说,要求是否有偏差,是否要求太高或太低?
感觉关键点在于状态,我用了枚举类型来处理,这个东西以前很少用,现在用起来很不顺手,导致写到最后又回去改数据库的数据类型.(状态应该用tinyint啊,一开始用了nvchar)悲剧啊.不过好像也可以在代码里处理这个类型的问题.
本人大四了,正准备找工作,还是新手,代码写的不好,高手老鸟们切勿嘲笑啊.同时也欢迎批评.
Products:using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;namespace ConsoleApplication5
{
/// <summary>
/// 枚举类型的状态
/// </summary>
public enum ProductState
{
Normal,
Disabled
}
/// <summary>
/// Products类
/// </summary>
public class Products
{
//id
private int proId; public int ProId
{
get { return proId; }
set { proId = value; }
}
//名称
private string proName; public string ProName
{
get { return proName; }
set { proName = value; }
}
//暂且描述吧
private string proDescription; public string ProDescription
{
get { return proDescription; }
set { proDescription = value; }
}
//入库时间
private DateTime proDate;
public DateTime ProDate
{
get { return proDate; }
set { proDate = value; }
}
//状态
private ProductState productState; public ProductState ProductState1
{
get { return productState; }
set { productState = value; }
}
/// <summary>
/// 默认构造函数
/// </summary>
public Products()
{
}
/// <summary>
/// 自定义构造函数
/// </summary>
/// <param name="pro_id">ID</param>
/// <param name="pro_name">产品名称</param>
/// <param name="pro_des">产品描述</param>
/// <param name="pro_date">入库时间</param>
/// <param name="pro_state">产品状态</param>
public Products(int pro_id, string pro_name, string pro_des, DateTime pro_date, ProductState pro_state)
{
this.proId = pro_id;
this.proName = pro_name;
this.proDescription = pro_des;
this.proDate = pro_date;
this.productState = pro_state;
}
}
}
Program:using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
namespace ConsoleApplication5
{
class Program
{
private static readonly string connectionstring = "Data Source=.\\sqlexpress; Initial Catalog=testdatabase; user ID=sa; PassWord=123";
static void Main(string[] args)
{
//插入
//for (int i = 0; i < 5; i++)
//{
// InsertToDatabase(i);
//} //读取
ReadFromDatabase();
Console.ReadKey();
} static void ReadFromDatabase()
{
//Products[] products = new Products[5];
//这里总感觉有些诡异....
Products[] products = new Products[]{
new Products(),
new Products(),
new Products(),
new Products(),
new Products()
};
string sqlstr="select * from test1";
using (SqlConnection conn=new SqlConnection(connectionstring))
{
conn.Open();
using(SqlCommand cmd=new SqlCommand(sqlstr,conn))
{
SqlDataReader myread = cmd.ExecuteReader();
int i = 0;
while (i < 5&&myread.Read())
{
products[i].ProId = Convert.ToInt32(myread["p_id"]);
products[i].ProName = myread["p_name"].ToString();
products[i].ProDescription =myread["p_description"].ToString();
products[i].ProDate= Convert.ToDateTime(myread["p_date"]);
products[i].ProductState1 = (ProductState) Convert.ToInt32 (myread["p_state"]);
i++;
}
conn.Close();
}
}
foreach (Products pro in products)
{
Console.WriteLine("{0},{1},{2},{3},{4}",pro.ProId,pro.ProName, pro.ProDescription, pro.ProDate, pro.ProductState1.ToString());
}
}
static void InsertToDatabase(int i)
{
Products[] products =new Products[]{
new Products(1, "龙眼", "我国南亚热带名贵特产。", DateTime.Now, ProductState.Normal),
new Products(2, "甘蔗", "甘蔗是一年生宿根热带和亚热带草本植物。", DateTime.Now, ProductState.Normal),
new Products(3, "苹果", "“一天一个苹果”是人们熟知的健康口号。", DateTime.Now, ProductState.Disabled),
new Products(4, "桃", "", DateTime.Now, ProductState.Disabled),
new Products(5, "椰子", "常绿乔木。", DateTime.Now, ProductState.Normal)
};
string sqlstr = "insert into test1(p_id,p_name,p_description,p_date,p_state)values(@p_id,@p_name,@p_description,@p_date,@p_state)";
using (SqlConnection conn = new SqlConnection(connectionstring))
{
using (SqlCommand cmd = new SqlCommand(sqlstr, conn))
{
conn.Open();
cmd.Parameters.Add("@p_id",SqlDbType.Int);
cmd.Parameters.Add("@p_name",SqlDbType.NVarChar);
cmd.Parameters.Add("@p_description", SqlDbType.NVarChar);
cmd.Parameters.Add("@p_date", SqlDbType.DateTime);
cmd.Parameters.Add("@p_state", SqlDbType.TinyInt);
cmd.Parameters["@p_id"].Value = products[i].ProId;
cmd.Parameters["@p_name"].Value = products[i].ProName;
cmd.Parameters["@p_description"].Value = products[i].ProDescription;
cmd.Parameters["@p_date"].Value = products[i].ProDate;
cmd.Parameters["@p_state"].Value = products[i].ProductState1;
int flag= cmd.ExecuteNonQuery();
if (flag > 0)
{
Console.WriteLine("记录{0}插入成功",i);
}
conn.Close();
}
}
}
}
}
但是看楼主的帖子,说明是一个小公司,工资肯定给的不高,
而去公司面试的肯定都是2年以下的,而且肯定不是名校的,一定是一个垃圾学校出来的,
不是鄙视学校问题,我也是一个很很很垃圾学校出来的,
起码这个题目在我工作一年的时候肯定做不出来,(你说你招asp.net程序员 非建一个Console Application干什么,难道为了显示你们那里水平高?)还有楼上那些说很简单的,请问你们在一年的时候可能做出来这个题不,
当然会有很多人说肯定做出来了,但是我想问下,你们可能去这样的公司吗?我想说这些的意思是,你想招一个什么样的人,打算出多少工资你自己心里要有数,如果你打算招一个高手,当然你可以出很难的题目,如果打算弄点钱稍微说的过去就行了,请不要出这样的问题,
你可以出现简单的增删查改,知道如果操作对象,数据结构就行了。不要非建什么Console Application,因为可能去这样的小公司的人大部分学的时候直接是建网站,不会用这样的工程,
new Products(),
new Products(),
new Products(),
new Products(),
new Products()
感觉 没必要这样写吧
呵呵
using (SqlConnection conn=new SqlConnection(connectionstring))
{
conn.Open();
List<Products> p=new List<Products>;
using(SqlCommand cmd=new SqlCommand(sqlstr,conn))
{
SqlDataReader myread = cmd.ExecuteReader();
int i = 0;
while (myread.Read())
{
Products product=new Products();
product.ProId = Convert.ToInt32(myread["p_id"]);
product.ProName = myread["p_name"].ToString();
product.ProDescription =myread["p_description"].ToString();
product.ProDate= Convert.ToDateTime(myread["p_date"]);
product.ProductState1 = (ProductState) Convert.ToInt32 (myread["p_state"]);
p.Add(product);
}
conn.Close();
}
}
不知道 错没
菜鸟飘过