当前位置:首页 > 行业动态 > 正文

c# 存储数据脚本

csharp,using System;,using System.IO;class Program,{, static void Main(), {, string data = "这是要存储的数据";, string filePath = "data.txt";, File.WriteAllText(filePath, data);, Console.WriteLine("数据已存储到文件");, },},

在C#中存储数据可以通过多种方式实现,包括使用文件系统、数据库以及内存中的数据结构等,下面将详细介绍几种常见的存储数据的方法:

使用文件系统存储数据

文本文件

文本文件是最简单的数据存储方式之一,你可以使用System.IO命名空间下的类来读写文件。

写入数据到文本文件

using System;
using System.IO;
class Program
{
    static void Main()
    {
        string path = @"C:data.txt";
        string data = "Hello, World!";
        // 写入数据到文件
        File.WriteAllText(path, data);
    }
}

从文本文件读取数据

using System;
using System.IO;
class Program
{
    static void Main()
    {
        string path = @"C:data.txt";
        string data;
        // 从文件读取数据
        data = File.ReadAllText(path);
        Console.WriteLine(data);
    }
}

二进制文件

对于更复杂的数据结构,可以使用二进制格式进行存储。

写入数据到二进制文件

c# 存储数据脚本

using System;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
[Serializable]
class Data
{
    public int Id { get; set; }
    public string Name { get; set; }
}
class Program
{
    static void Main()
    {
        Data data = new Data { Id = 1, Name = "Alice" };
        string path = @"C:data.bin";
        // 序列化对象到二进制文件
        IFormatter formatter = new BinaryFormatter();
        using (FileStream stream = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.None))
        {
            formatter.Serialize(stream, data);
        }
    }
}

从二进制文件读取数据

using System;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
[Serializable]
class Data
{
    public int Id { get; set; }
    public string Name { get; set; }
}
class Program
{
    static void Main()
    {
        string path = @"C:data.bin";
        Data data;
        // 反序列化对象从二进制文件
        IFormatter formatter = new BinaryFormatter();
        using (FileStream stream = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read))
        {
            data = (Data)formatter.Deserialize(stream);
        }
        Console.WriteLine($"Id: {data.Id}, Name: {data.Name}");
    }
}

使用数据库存储数据

SQL Server(使用ADO.NET)

使用ADO.NET可以与SQL Server等关系型数据库进行交互。

连接到数据库并插入数据

c# 存储数据脚本

using System;
using System.Data.SqlClient;
class Program
{
    static void Main()
    {
        string connectionString = "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;";
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            connection.Open();
            string sql = "INSERT INTO Users (Name, Age) VALUES (@Name, @Age)";
            using (SqlCommand command = new SqlCommand(sql, connection))
            {
                command.Parameters.AddWithValue("@Name", "Alice");
                command.Parameters.AddWithValue("@Age", 30);
                command.ExecuteNonQuery();
            }
        }
    }
}

从数据库查询数据

using System;
using System.Data.SqlClient;
class Program
{
    static void Main()
    {
        string connectionString = "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;";
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            connection.Open();
            string sql = "SELECT Name, Age FROM Users WHERE Name = @Name";
            using (SqlCommand command = new SqlCommand(sql, connection))
            {
                command.Parameters.AddWithValue("@Name", "Alice");
                using (SqlDataReader reader = command.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        Console.WriteLine($"Name: {reader["Name"]}, Age: {reader["Age"]}");
                    }
                }
            }
        }
    }
}

使用内存中的数据结构存储数据

使用List 存储数据

using System;
using System.Collections.Generic;
class Program
{
    static void Main()
    {
        List<int> numbers = new List<int>();
        numbers.Add(1);
        numbers.Add(2);
        numbers.Add(3);
        foreach (int number in numbers)
        {
            Console.WriteLine(number);
        }
    }
}

使用Dictionary<TKey, TValue>存储键值对数据

using System;
using System.Collections.Generic;
class Program
{
    static void Main()
    {
        Dictionary<string, int> dictionary = new Dictionary<string, int>();
        dictionary["one"] = 1;
        dictionary["two"] = 2;
        dictionary["three"] = 3;
        foreach (var item in dictionary)
        {
            Console.WriteLine($"{item.Key}: {item.Value}");
        }
    }
}

相关问答FAQs

问题1:如何在C#中将对象序列化为JSON格式并保存到文件中?

回答: 可以使用Newtonsoft.Json库来实现对象的序列化和保存,首先安装该库,然后使用JsonConvert.SerializeObject方法将对象转换为JSON字符串,最后将其写入文件。

c# 存储数据脚本

using System;
using System.IO;
using Newtonsoft.Json;
class Program
{
    static void Main()
    {
        Person person = new Person { Name = "Alice", Age = 30 };
        string json = JsonConvert.SerializeObject(person);
        File.WriteAllText("person.json", json);
    }
}
class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

需要先安装Newtonsoft.Json库,可以使用NuGet包管理器安装:Install-Package Newtonsoft.Json

问题2:如何在C#中使用Entity Framework Core进行数据库操作?

回答: 首先需要在项目中安装Entity Framework Core包,创建DbContext类继承自DbContext,定义实体类,并在DbContext中注册这些实体类,然后通过DbContext实例进行数据库操作。

using Microsoft.EntityFrameworkCore;
using System;
using System.Linq;
public class BloggingContext : DbContext
{
    public DbSet<Blog> Blogs { get; set; }
}
public class Blog
{
    public int BlogId { get; set; }
    public string Url { get; set; }
}
class Program
{
    static void Main()
    {
        using (var context = new BloggingContext())
        {
            context.Database.EnsureCreated();
            context.Blogs.Add(new Blog { Url = "http://example.com" });
            context.SaveChanges();
        }
    }
}