C# & SQL 服务器 - 插入不同的表(if/case 语句)
C# & SQL Server - insert into different tables (if/case statement)
我有要插入到 MYTABLE
中的 SYMBOLS 及其数据的列表。我希望如果 SYMBOL = 'ABC'
,数据将被插入 MYTABLE_ABC
,如果 SYMBOL = 'DCE'
,它将被插入 MYTABLE_DCE
等...
我正在使用 SQL 服务器。考虑 IF/CASE 语句?但是无法弄清楚 C# 控制台应用程序中的语法。
Public String toInsert()
{
String output = "insert into MYTABLE (id,symbol,date,time, value,type) values ( " + id + ",'" + symbol + "', ('" + date +"'), ('" + time + "')," + value + ",'" + type + "')";
return output;
}
怎么样...
public String toInsert()
{
if (symbol == "ABC")
return "insert into MYTABLE_ABC (id,symbol,date,time, value,type) values ( " + id + ",'" + symbol + "', ('" + date +"'), ('" + time + "')," + value + ",'" + type + "')";
else
if (symbol == "DEF")
return "insert into MYTABLE_DEF (id,symbol,date,time, value,type) values ( " + id + ",'" + symbol + "', ('" + date +"'), ('" + time + "')," + value + ",'" + type + "')";
else
return null;
}
为什么不直接将 table 名称写成变量?你可以对字符串做任何你喜欢的事情,因为它是一个字符串,而不是函数或其他东西。
喜欢:
String Table_Name;
switch (symbol)
{
case "ABC": Table_Name = "MYTABLE_ABC";
case "DEF": Table_Name = "MYTABLE_DEF";
(blabla....)
}
String output = "insert into " +Table_Name+ " (id,symbol,date,time, value,type) values ( " + id + ",'" + symbol + "', ('" + date +"'), ('" + time + "')," + value + ",'" + type + "')";
return output;
使用 String.Format() 方法进行字符串连接。
您可以在创建插入语句字符串时将值 symbol
附加到 "MYTABLE_"
。如果 symbol
的每个值都遵循相同的模式,那么它将起作用。如果您想要更灵活地识别未知符号值或根据 symbol
的值以不同方式格式化 table 名称,那么使用 switch 语句可能是可行的方法。
public String toInsert()
{
String output = String.Format("insert into MYTABLE_{0} (id,symbol,date,time, value,type) values ( '{1}', ('{2}'), ('{3}'), {4}, '{5}', {6} )", symbol, id, symbol, date, time, value, type);
return output;
}
public String toInsert()
{
String tableName;
switch (symbol)
{
case "ABC":
case "XYZ":
case "B2M":
tableName="MYTABLE_" + symbol;
break;
case "A12":
tableName="MYTABLE_TEST";
break;
case string.Empty:
case NULL:
tableName="MYTABLE";
break;
default:
// as an example the default case could throw an error if you don't want to process unknown symbols. Or you could use a different tableName format pattern
// throw new Exception("Unknown value of symbol variable ({0}", symbol);
tableName = "MYTABLE_UnknownSymbol_"+symbol;
break;
}
String output = String.Format("insert into {0} (id,symbol,date,time, value,type) values ( '{1}', ('{2}'), ('{3}'), {4}, '{5}', {6} )", myTableName, id, symbol, date, time, value, type);
return output;
}
我有要插入到 MYTABLE
中的 SYMBOLS 及其数据的列表。我希望如果 SYMBOL = 'ABC'
,数据将被插入 MYTABLE_ABC
,如果 SYMBOL = 'DCE'
,它将被插入 MYTABLE_DCE
等...
我正在使用 SQL 服务器。考虑 IF/CASE 语句?但是无法弄清楚 C# 控制台应用程序中的语法。
Public String toInsert()
{
String output = "insert into MYTABLE (id,symbol,date,time, value,type) values ( " + id + ",'" + symbol + "', ('" + date +"'), ('" + time + "')," + value + ",'" + type + "')";
return output;
}
怎么样...
public String toInsert()
{
if (symbol == "ABC")
return "insert into MYTABLE_ABC (id,symbol,date,time, value,type) values ( " + id + ",'" + symbol + "', ('" + date +"'), ('" + time + "')," + value + ",'" + type + "')";
else
if (symbol == "DEF")
return "insert into MYTABLE_DEF (id,symbol,date,time, value,type) values ( " + id + ",'" + symbol + "', ('" + date +"'), ('" + time + "')," + value + ",'" + type + "')";
else
return null;
}
为什么不直接将 table 名称写成变量?你可以对字符串做任何你喜欢的事情,因为它是一个字符串,而不是函数或其他东西。
喜欢:
String Table_Name;
switch (symbol)
{
case "ABC": Table_Name = "MYTABLE_ABC";
case "DEF": Table_Name = "MYTABLE_DEF";
(blabla....)
}
String output = "insert into " +Table_Name+ " (id,symbol,date,time, value,type) values ( " + id + ",'" + symbol + "', ('" + date +"'), ('" + time + "')," + value + ",'" + type + "')";
return output;
使用 String.Format() 方法进行字符串连接。
您可以在创建插入语句字符串时将值 symbol
附加到 "MYTABLE_"
。如果 symbol
的每个值都遵循相同的模式,那么它将起作用。如果您想要更灵活地识别未知符号值或根据 symbol
的值以不同方式格式化 table 名称,那么使用 switch 语句可能是可行的方法。
public String toInsert()
{
String output = String.Format("insert into MYTABLE_{0} (id,symbol,date,time, value,type) values ( '{1}', ('{2}'), ('{3}'), {4}, '{5}', {6} )", symbol, id, symbol, date, time, value, type);
return output;
}
public String toInsert()
{
String tableName;
switch (symbol)
{
case "ABC":
case "XYZ":
case "B2M":
tableName="MYTABLE_" + symbol;
break;
case "A12":
tableName="MYTABLE_TEST";
break;
case string.Empty:
case NULL:
tableName="MYTABLE";
break;
default:
// as an example the default case could throw an error if you don't want to process unknown symbols. Or you could use a different tableName format pattern
// throw new Exception("Unknown value of symbol variable ({0}", symbol);
tableName = "MYTABLE_UnknownSymbol_"+symbol;
break;
}
String output = String.Format("insert into {0} (id,symbol,date,time, value,type) values ( '{1}', ('{2}'), ('{3}'), {4}, '{5}', {6} )", myTableName, id, symbol, date, time, value, type);
return output;
}