Files
Groupware/SubProject/FCOMMON/DataBaseManager.cs
chikyun.kim 663a2263f9 ..
2018-10-11 08:27:09 +09:00

297 lines
11 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
namespace FCOMMON
{
public static class DBM
{
public static SqlConnection getCn()
{
string cs = FCOMMON.info.CS;
SqlConnection cn = new SqlConnection();
cn.ConnectionString = cs;
return cn;
}
public struct sItemInfo
{
public int idx;
public string sid;
public string model;
public string supply;
public string name;
public string unit;
public float scale;
public string price;
public int supplyidx;
}
public static sItemInfo getItemInfo(int idx)
{
var cn = getCn();
cn.Open();
var retval = new sItemInfo();
retval.idx = -1;
string sql = "select * from Items where idx = " + idx.ToString();
var cmd = new SqlCommand(sql, cn);
var rdr = cmd.ExecuteReader();
while(rdr.Read())
{
retval.idx = (int)rdr["idx"];
if(rdr["sid"] != DBNull.Value) retval.sid = rdr["sid"].ToString();
if (rdr["model"] != DBNull.Value) retval.model = rdr["model"].ToString();
if (rdr["supply"] != DBNull.Value) retval.supply = rdr["supply"].ToString();
if (rdr["supplyidx"] != DBNull.Value) retval.supplyidx = int.Parse(rdr["supplyidx"].ToString());
if (rdr["name"] != DBNull.Value) retval.name = rdr["name"].ToString();
if (rdr["unit"] != DBNull.Value) retval.unit = rdr["unit"].ToString();
if (rdr["scale"] != DBNull.Value) retval.scale = float.Parse(rdr["scale"].ToString());
if (rdr["price"] != DBNull.Value) retval.price = rdr["price"].ToString();
}
cn.Close();
cn.Dispose();
return retval;
}
public static int addItemInfo(sItemInfo info)
{
int retval = -1;
var cn = getCn();
cn.Open();
string sql = "insert into Items" +
" ([cate],[sid],[model],[supply],[supplyidx],[name],[unit],[scale],[price],[wuid],[wdate])" +
" values " +
" (@cate,@sid,@model,@supply,@supplyidx,@name,@unit,@scale,@price,@wuid,@wdate)";
var cmd = new SqlCommand(sql, cn);
cmd.Parameters.Add(new SqlParameter("@cate", "etc"));
cmd.Parameters.Add(new SqlParameter("@sid", info.sid));
cmd.Parameters.Add(new SqlParameter("@model", info.model));
cmd.Parameters.Add(new SqlParameter("@supply", info.supply));
cmd.Parameters.Add(new SqlParameter("@supplyidx", info.supplyidx));
cmd.Parameters.Add(new SqlParameter("@name", info.name));
cmd.Parameters.Add(new SqlParameter("@unit", info.unit));
cmd.Parameters.Add(new SqlParameter("@scale", info.scale));
cmd.Parameters.Add(new SqlParameter("@price", info.price));
cmd.Parameters.Add(new SqlParameter("@wuid", FCOMMON.info.Login.no));
cmd.Parameters.Add(new SqlParameter("@wdate", DateTime.Now));
var iCnt = cmd.ExecuteNonQuery();
if(iCnt == 1)
{
cmd.CommandText = "select isnull(idx,-1) from Items where [sid] = @sid";
cmd.Parameters.Clear();
cmd.Parameters.Add(new SqlParameter("sid", info.sid));
retval = (int)cmd.ExecuteScalar();
}
cn.Close();
cn.Dispose();
return retval;
}
public static sItemInfo getItemInfo(string sid)
{
var cn = getCn();
cn.Open();
var retval = new sItemInfo();
retval.idx = -1;
string sql = "select * from Items where [sid] = '" + sid + "'";
var cmd = new SqlCommand(sql, cn);
var rdr = cmd.ExecuteReader();
while (rdr.Read())
{
retval.idx = (int)rdr["idx"];
if (rdr["sid"] != DBNull.Value) retval.sid = rdr["sid"].ToString();
if (rdr["model"] != DBNull.Value) retval.model = rdr["model"].ToString();
if (rdr["supply"] != DBNull.Value) retval.supply = rdr["supply"].ToString();
if (rdr["supplyidx"] != DBNull.Value) retval.supplyidx = int.Parse(rdr["supplyidx"].ToString());
if (rdr["name"] != DBNull.Value) retval.name = rdr["name"].ToString();
if (rdr["unit"] != DBNull.Value) retval.unit = rdr["unit"].ToString();
if (rdr["scale"] != DBNull.Value) retval.scale = float.Parse(rdr["scale"].ToString());
if (rdr["price"] != DBNull.Value) retval.price = rdr["price"].ToString();
}
cn.Close();
cn.Dispose();
return retval;
}
public static Dictionary<string,string> getUserList(int baseLevel = 1)
{
string where = "isnull(level,0) >= " + baseLevel.ToString();
return getTwoColumnList("Users", "id", "name", where, "name");
}
public static System.Data.DataTable getUserTable(int baseLevel = 1)
{
var list = getUserList(baseLevel);
return MakeDataTable(list);
}
private static Dictionary<string,string> MakeDataTable(List<string> list)
{
var retval = new Dictionary<string, string>();
foreach (var item in list)
retval.Add(item, item);
return retval;
}
private static System.Data.DataTable MakeDataTable(Dictionary<string,string> list)
{
System.Data.DataTable dt = new System.Data.DataTable();
dt.Columns.Add("Key");
dt.Columns.Add("Value");
dt.Columns.Add("KeyValue");
foreach (var item in list)
{
dt.Rows.Add(new string[] { item.Key, item.Value, string.Format("[{0}] {1}", item.Key, item.Value) });
}
dt.AcceptChanges();
return dt;
}
public static Dictionary<string, string> getProjectList(string StateCode = "")
{
string where = "status = '{0}'";
if (StateCode != "") where = string.Format(where, StateCode);
else where = string.Empty;
return getTwoColumnList("Projects", "idx", "name", where, "status,name");
}
public static System.Data.DataTable getProjectData(string StateCode = "")
{
var list = getProjectList(StateCode);
return MakeDataTable(list);
}
public static Dictionary<string,string> getCodeList(string GroupCode="99")
{
string where = "Grp = '{0}'";
where = string.Format(where, GroupCode);
return getTwoColumnList("Common", "code", "memo", where, "code");
}
public static string getCodeSavlue(string GroupCode, string code)
{
var cn = getCn();
cn.Open();
var sql = "select isnull(SValue,'')" +
" from Common" +
" where Grp = '{0}' and code = '{1}'";
sql = string.Format(sql, GroupCode, code);
var cmd = new SqlCommand(sql, cn);
var data = cmd.ExecuteScalar();
cmd.Dispose();
cn.Close();
cn.Dispose();
return data.ToString();
}
public static System.Data.DataTable getCodeTable(string GroupCode = "99")
{
var list = getCodeList(GroupCode);
return MakeDataTable(list);
}
private static Dictionary<string, string> getTwoColumnList(string table,string col1,string col2,string where="",string order="")
{
Dictionary<string, string> retval = new Dictionary<string, string>();
var cn = getCn();
cn.Open();
var sql = "select isnull({1},''),isnull({2},'')" +
" from {0}";
if (where != "") sql += " where " + where;
if (order != "") sql += " order by " + order;
sql = string.Format(sql,table, col1, col2);
var cmd = new SqlCommand(sql, cn);
var rdr = cmd.ExecuteReader();
while (rdr.Read())
{
retval.Add(rdr[0].ToString(), rdr[1].ToString());
}
rdr.Close();
cmd.Dispose();
cn.Close();
cn.Dispose();
return retval;
}
public static Dictionary<string,string> getGroupTable(string GroupColumn, string table, string where = "", Boolean desc = false)
{
var list = getGroupList(GroupColumn, table, where, desc);
return MakeDataTable(list);
}
/// <summary>
/// 데이터중 첫번째 자료를 반환 합니다.
/// </summary>
/// <param name="column"></param>
/// <param name="table"></param>
/// <param name="where"></param>
/// <param name="order"></param>
/// <returns></returns>
public static String getFirstValue(string column,string table,string where="",string order="")
{
string retval = string.Empty;
var cn = getCn();
cn.Open();
var sql = "select {0} " +
" from {1} " +
" where isnull({0},'') != '' ";
if (where != "") sql += " and " + where;
if (order != "") sql += " order by " + order;
sql = string.Format(sql, "[" + column + "]", table);
var cmd = new SqlCommand(sql, cn);
var rdr = cmd.ExecuteReader();
while (rdr.Read())
{
if (rdr[0] != null) retval = rdr[0].ToString();
}
cmd.Dispose();
cn.Close();
cn.Dispose();
return retval;
}
public static List<String> getGroupList(string GroupColumn, string table, string where = "",Boolean desc=false)
{
List<string> retval = new List<string>();
var cn = getCn();
cn.Open();
var sql = "select {0} " +
" from {1} " +
" where isnull({0},'') != '' ";
if (where != "") sql += " and " + where;
sql += " group by {0} " +
" order by {0} ";
if (desc) sql += " desc";
sql = string.Format(sql, "[" + GroupColumn + "]", table);
var cmd = new SqlCommand(sql, cn);
var rdr = cmd.ExecuteReader();
while (rdr.Read())
{
retval.Add(rdr[0].ToString());
}
cmd.Dispose();
cn.Close();
cn.Dispose();
return retval;
}
public static List<String> getDateList(string table, string where = "",Boolean desc =false)
{
return getGroupList("pdate", table, where,desc);
}
}
}