SQLサーバーを初めて使用しています。コンソールアプリケーション(C#)からSQLデータベースを読み書きする方法
上記の私の最初の関数は、単に2番目の関数を呼び出してパラメータとしてリストを渡すために使用されています。
今私は、分割された文字列配列から情報を解析しています。 各値は何かを意味し、これは私がコンソールに表示しています。 しかし、私はそれをSQLデータベースに保存する必要があります。解析された値。 私はSQLiteでいくつかの経験がありますが、これは少し異なります。 私は物事を捜して、これは私が思い付くことができるものです。しかし、私は列を更新する簡単な方法は見つけられませんでした。私のカラム名は、console.writelineコードで言及されているものと同じです。例えば、いくつかのカラムは "data record"、 "record_id"、 "article_code"などです。例えば "2.1 Movement record"の値を、次に "record_id"にはdividerTrans [0]の値を設定します。誰かがこれを行う効率的な方法で私を助けてくれますか?
class save_parsed_data
{
static string connectionstring;
static SqlConnection connection;
public static void save_data(string transaction)
{
connectionstring = ConfigurationManager.
ConnectionStrings["testEnvironmentSAMPLE.Properties.Settings.sampleConnectionString"].ConnectionString;
List<char> dividedTrans = new List<char>(transaction.ToCharArray());
if (transaction.StartsWith("21"))
StringWith21(dividedTrans);
Console.ReadKey();
}
public static void StringWith21(List<char> dividedTrans)
{
using (connection = new SqlConnection(connectionstring))
using (SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM Sample_values", connection))
{
DataTable codaTable = new DataTable();
adapter.Fill(codaTable);
Console.WriteLine("\nData Record 2.1: Movement Record.");
Console.WriteLine("Record Identification: {0}", dividedTrans[0]);
Console.WriteLine("Article Code: {0}", dividedTrans[1]);
Console.WriteLine("Sequence Number: {0}", new string(dividedTrans.GetRange(2, 4).ToArray()));
Console.WriteLine("Detail Number: {0}", new string(dividedTrans.GetRange(6, 4).ToArray()));
Console.WriteLine("Reference Number of bank: {0}", new string(dividedTrans.GetRange(10, 21).ToArray()));
Console.WriteLine("Movement Sign: {0}", new string(dividedTrans.GetRange(31, 1).ToArray()));
Console.WriteLine("Amount: {0}", Convert.ToString(Int32.Parse(string.Join("", dividedTrans.GetRange(32, 15)))));
Console.WriteLine("Value Date: {0}", DateandTime(string.Join("", dividedTrans.GetRange(47, 6))).ToString("d"));
Console.WriteLine("Transaction Code: {0}", new string(dividedTrans.GetRange(53, 8).ToArray()));
Console.WriteLine("Communication Type: {0}", new string(dividedTrans.GetRange(61, 1).ToArray()));
Console.WriteLine("Communication zone: {0}", new string(dividedTrans.GetRange(62, 53).ToArray()));
Console.WriteLine("Entry Date: {0}", DateandTime(string.Join("", dividedTrans.GetRange(115, 6))).ToString("d"));
Console.WriteLine("Sequence Number: {0}", new string(dividedTrans.GetRange(121, 3).ToArray()));
Console.WriteLine("Globalization Code: {0}", new string(dividedTrans.GetRange(124, 1).ToArray()));
Console.WriteLine("Next Code: {0}", new string(dividedTrans.GetRange(125, 1).ToArray()));
Console.WriteLine("Blank: {0}", new string(dividedTrans.GetRange(126, 1).ToArray()));
Console.WriteLine("Linker Code: {0}", new string(dividedTrans.GetRange(127, 1).ToArray()));
}
}
}
に示すように、生のSQLです。 –
"DBに保存する"とは、SQLテーブルに挿入するか更新する必要があることを意味します。最初にSQLテーブルをDataTableに読み込むと、そのテーブルを更新すると結論づけることができます。または挿入しますか? – Serg
テーブルに挿入する必要があります。私は後でそれを更新するつもりですが、今はありません。今、テーブルは空です。 –