如何链接我的数据库? [英] How can I link my databases?

查看:101
本文介绍了如何链接我的数据库?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想给每个填写的别名分数。

 CREATE TABLE [dbo]。[Persoon](
[Id] INT IDENTITY( 1 1 )NOT NULL,
[Aliasnaam] NCHAR( 10 )NOT NULL,
[ScoreID] INT NOT NULL,
PRIMARY KEY CLUSTERED([Id] ASC),
CONSTRAINT [FK_Persoon_ToTable] FOREIGN KEY([ScoreID])REFERENCES [dbo]。[Score]([Id] ])
);


CREATE TABLE [dbo]。[Score](
[Id] INT IDENTITY( 1 1 )NOT NULL,
[Aantal_punten] INT NULL,
[Aantal_strikes] INT NULL,
[Aantal_spares] INT NULL,
PRIMARY KEY CLUSTERED([Id] ASC)
);





我尝试过:



i尝试了一些查询,但没有帮助

  public 列表< persoon> spelers()
{

SqlConnection data = new SqlConnection(Connectionstring);
data.Open();
string query = 选择Aliasnaam FROM Persoon INNER JOIN得分分数.Id = ScoreID;
SqlCommand cmd = SqlCommand(查询,数据) ;
使用(SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{

persoon speler = new persoon();

// Lees de gegevens van de student in。
speler.Voegtoe(reader.GetString( 0 ));


// En voeg deze toe aan de lokale lijst。
Spelers.Add(speler);

}

}
data.Close();
返回 Spelers;


public 列表<得分> punten()
{
SqlConnection data = new SqlConnection(Connectionstring);
data.Open();
string query = 选择Aantal_punten,Aantal_strikes ,Aantal_spares FROM Score;
SqlCommand cmd = new SqlCommand(查询,数据);
得分punten = 得分();
使用(SqlDataReader reader = cmd.ExecuteReader())

{

while (reader.Read())
{



/ / Lees de gegevens van de student in。
punten.voegtoeaantpnt(reader.GetInt32( 0 ));
punten.voegtoeaantstr(reader.GetInt32( 1 ));
punten.voegtoeaantsprs(reader.GetInt32( 2 ));

// En voeg deze toe aan de lokale lijst。
Punten.Add(punten);

}
}
data.Close();
返回 Punten;
pre>

解决方案

 CREATE TABLE [dbo]。[Persoon](
[Id] INT IDENTITY(1,1)NOT NULL,
[Aliasnaam] NCHAR(10)NOT NULL,
[ScoreID] INT NOT NULL,
PRIMARY KEY CLUSTERED([Id] ASC ),
CONSTRAINT [FK_Persoon_ToTable] FOREIGN KEY [dbo]。[Persoon]。([ScoreID])REFERENCES [dbo]。[Score]。([ScoreID])
);


CREATE TABLE [dbo]。[Score](
[Id] INT IDENTITY(1,1)NOT NULL,
[ScoreID] INT NULL,
[Aantal_punten] INT NULL,
[Aantal_strikes] INT NULL,
[Aantal_spares] INT NULL,
PRIMARY KEY CLUSTERED([Id] ASC)
);







外键名称必须始终相同。

在您的表分数列中[Id]是主键。它与外键不同。

只需在分数表中为唯一键约束包含另一个列名[ScoreID]。





 public List< persoon> spelers()
{

SqlConnection data = new SqlConnection(Connectionstring);
data.Open();
//包括
string query =选择P.Aliasnaam,P.ScoreID FROM Persoon为'P'INNER JOIN得分为'S',在S.ScoreID = P.ScoreID,其中P.ScoreID = +01+ ;
SqlCommand cmd = new SqlCommand(query,data);
使用(SqlDataReader reader = cmd.ExecuteReader())
{
while(reader.Read())
{

persoon speler = new persoon ();

// Lees de gegevens van de student in。
speler.Voegtoe(reader.GetString(0));


// En voeg deze toe aan de lokale lijst。
Spelers.Add(speler);

}

}
data.Close();
返回Spelers;


公开列表<得分> punten()
{
SqlConnection data = new SqlConnection(Connectionstring);
data.Open();
//包括最后一部分的过滤位置。例如,人员ScoreID等于01,然后在表格中,您只能得到ScoreID等于01
// e.i. string query =选择Aantal_punten,Aantal_strikes,Aantal_spares FROM Score得分=+ 01+;

string query =选择Aantal_punten,Aantal_strikes,Aantal_spares FROM Score;
SqlCommand cmd = new SqlCommand(query,data);
得分punten =新得分();
使用(SqlDataReader reader = cmd.ExecuteReader())

{

while(reader.Read())
{
/ / Lees de gegevens van de student in。
punten.voegtoeaantpnt(reader.GetInt32(0));
punten.voegtoeaantstr(reader.GetInt32(1));
punten.voegtoeaantsprs(reader.GetInt32(2));

// En voeg deze toe aan de lokale lijst。
Punten.Add(punten);
}
}
data.Close();
返回Punten;
pre>









使用Insert查询if你想在每个人中插入记分板。

分数表的插入查询必须是。





  //   ScoreID必须来自表persoon。 
< span class =code-keyword> public void InsertValues( int ScoreID)
{
string query = INSERT INTO分数(id,ScoreId,Aantal_punten,Aantal_strikes,Aantal_spares)VALUES(@ id,@ ScoreID,@ Aantal_punten,@ Aantal_strikes,@ Aantal_spares)
/ / 做SQL连接和SQL命令

// @值将接受单引号规范的值用于安全插入的字符。
command.Parameters.AddWithValue( @ id abc
command.Parameters.AddWithValue( @ ScoreID abc
command.Parameters.AddWithValue( @ Aantal_punten abc
command.Parameters.AddWithValue( @ Aantal_strikes abc
command.Parameters.AddWithValue( @ Aantal_spares abc

command.ExecuteNonQuery();
}





其余的由你决定好运!! 


i want to give a score to every aliasnaam i fill in .

CREATE TABLE [dbo].[Persoon] (
    [Id]        INT        IDENTITY (1, 1) NOT NULL,
    [Aliasnaam] NCHAR (10) NOT NULL,
    [ScoreID]   INT        NOT NULL,
    PRIMARY KEY CLUSTERED ([Id] ASC),
    CONSTRAINT [FK_Persoon_ToTable] FOREIGN KEY ([ScoreID]) REFERENCES [dbo].[Score] ([Id])
);


CREATE TABLE [dbo].[Score] (
    [Id]             INT IDENTITY (1, 1) NOT NULL,
    [Aantal_punten]  INT NULL,
    [Aantal_strikes] INT NULL,
    [Aantal_spares]  INT NULL,
    PRIMARY KEY CLUSTERED ([Id] ASC)
);



What I have tried:

i have tried some querys but it didnt help

 public List<persoon> spelers()
        {

            SqlConnection data = new SqlConnection(Connectionstring);
            data.Open();
            string query = "Select Aliasnaam FROM Persoon INNER JOIN Score ON Score.Id = ScoreID";
            SqlCommand cmd = new SqlCommand(query, data);
            using (SqlDataReader reader = cmd.ExecuteReader())
            {
                while (reader.Read())
                {

                    persoon speler = new persoon();

                    // Lees de gegevens van de student in.
                    speler.Voegtoe(reader.GetString(0));


                    // En voeg deze toe aan de lokale lijst.
                    Spelers.Add(speler);

                }

            }
            data.Close();
            return Spelers;


public List<score> punten()
        {
            SqlConnection data = new SqlConnection(Connectionstring);
            data.Open();
            string query = "Select Aantal_punten,Aantal_strikes,Aantal_spares FROM Score" ;
            SqlCommand cmd = new SqlCommand(query, data);
            score punten = new score();
            using (SqlDataReader reader = cmd.ExecuteReader())
                 
            {
      
                    while (reader.Read())
                    {

                       

                        // Lees de gegevens van de student in.
                        punten.voegtoeaantpnt(reader.GetInt32(0));
                        punten.voegtoeaantstr(reader.GetInt32(1));
                        punten.voegtoeaantsprs(reader.GetInt32(2));

                        // En voeg deze toe aan de lokale lijst.
                        Punten.Add(punten);

                    }
            }
            data.Close();
            return Punten;
pre>

解决方案

CREATE TABLE [dbo].[Persoon] (
    [Id]        INT        IDENTITY (1, 1) NOT NULL,
    [Aliasnaam] NCHAR (10) NOT NULL,
    [ScoreID]   INT        NOT NULL,
    PRIMARY KEY CLUSTERED ([Id] ASC),
    CONSTRAINT [FK_Persoon_ToTable] FOREIGN KEY [dbo].[Persoon].([ScoreID]) REFERENCES [dbo].[Score].([ScoreID])
);


CREATE TABLE [dbo].[Score] (
    [Id]             INT IDENTITY (1, 1) NOT NULL,
    [ScoreID]        INT NULL,
    [Aantal_punten]  INT NULL,
    [Aantal_strikes] INT NULL,
    [Aantal_spares]  INT NULL,
    PRIMARY KEY CLUSTERED ([Id] ASC)
);




Foreign key name must ALWAYS the same.
In your Table Score Column [Id] is a primary key. It is different from foreign key.
Just include another Column name [ScoreID] for Unique key constraint in Score Table.


 public List<persoon> spelers()
        {

            SqlConnection data = new SqlConnection(Connectionstring);
            data.Open();
//Include
         string query = "Select P.Aliasnaam,P.ScoreID FROM Persoon as 'P' INNER JOIN Score as 'S' ON S.ScoreID = P.ScoreID where P.ScoreID = "+01+"";
            SqlCommand cmd = new SqlCommand(query, data);
            using (SqlDataReader reader = cmd.ExecuteReader())
            {
                while (reader.Read())
                {

                    persoon speler = new persoon();

                    // Lees de gegevens van de student in.
                    speler.Voegtoe(reader.GetString(0));


                    // En voeg deze toe aan de lokale lijst.
                    Spelers.Add(speler);

                }

            }
            data.Close();
            return Spelers;


public List<score> punten()
        {
            SqlConnection data = new SqlConnection(Connectionstring);
            data.Open();
     //Include where in the last part for filtering. For Example The person ScoreID is equal to 01 then in the table Score you will only get the ScoreID equal to 01
// e.i. string query = "Select Aantal_punten,Aantal_strikes,Aantal_spares FROM Score where Score = "+01+"" ;

       string query = "Select Aantal_punten,Aantal_strikes,Aantal_spares FROM Score" ;
            SqlCommand cmd = new SqlCommand(query, data);
            score punten = new score();
            using (SqlDataReader reader = cmd.ExecuteReader())
                 
            {
      
                    while (reader.Read())
                    {
                        // Lees de gegevens van de student in.
                        punten.voegtoeaantpnt(reader.GetInt32(0));
                        punten.voegtoeaantstr(reader.GetInt32(1));
                        punten.voegtoeaantsprs(reader.GetInt32(2));

                        // En voeg deze toe aan de lokale lijst.
                        Punten.Add(punten);
                    }
            }
            data.Close();
            return Punten;
pre>





Use the Insert query if you want to insert score board in every Person.
Insert Query for Score table must be.


//ScoreID must get from table persoon.
public void InsertValues(int ScoreID)
{
string query="INSERT INTO Score (id,ScoreId,Aantal_punten,Aantal_strikes,Aantal_spares) VALUES (@id,@ScoreID, @Aantal_punten,@Aantal_strikes,@Aantal_spares)"
//DO the SQL CONNECTION AND SQL COMMAND 

//the @ value will accept the values single quote special characters for secure insertion.
command.Parameters.AddWithValue("@id","abc")
command.Parameters.AddWithValue("@ScoreID","abc")
command.Parameters.AddWithValue("@Aantal_punten","abc")
command.Parameters.AddWithValue("@Aantal_strikes","abc")
command.Parameters.AddWithValue("@Aantal_spares","abc")

command.ExecuteNonQuery();
}



The rest is up to you Good Luck!!.


这篇关于如何链接我的数据库?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆